“没有出口主要的出口主要定义”错误node.js
我正在尝试使用JS进行简单的API。但是我一直遇到这个愚蠢的错误。注意:这是我第一次在JS中编程。
代码:
const express = require('express')
const app = express()
const { Canvas } = require('canvas-constructor')
const canvas = require('canvas')
app.get('/:feed', async (req, res) => {
const img = await canvas.loadImage('https://i.pinimg.com/originals/30/82/b0/3082b0354572c4d37af6994b4e8baa43.png')
let image = new Canvas(670, 435)
.printImage(img, 0, 0, 670, 435)
.setTextFont('28px Impact')
.printText(req.params.feed, 40, 150)
.toBuffer();
res.set({'Content-Type': 'image/png'})
res.send(image)//sending the image!
})
app.listen(8080)
错误:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/runner/ScarceExcellentVariables/node_modules/canvas-constructor/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:440:9)
at packageExportsResolve (node:internal/modules/esm/resolve:692:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
如果有人可以帮助我,我会很感激
I'm trying to make a simple api with js. But i keep getting this stupid error. NOTE: This is my first time programming in js.
Code:
const express = require('express')
const app = express()
const { Canvas } = require('canvas-constructor')
const canvas = require('canvas')
app.get('/:feed', async (req, res) => {
const img = await canvas.loadImage('https://i.pinimg.com/originals/30/82/b0/3082b0354572c4d37af6994b4e8baa43.png')
let image = new Canvas(670, 435)
.printImage(img, 0, 0, 670, 435)
.setTextFont('28px Impact')
.printText(req.params.feed, 40, 150)
.toBuffer();
res.set({'Content-Type': 'image/png'})
res.send(image)//sending the image!
})
app.listen(8080)
Error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/runner/ScarceExcellentVariables/node_modules/canvas-constructor/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:440:9)
at packageExportsResolve (node:internal/modules/esm/resolve:692:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
If anyone could help me i'd appreciate it
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您指的是的软件包您要选择它应该用来渲染图形的内容。您可以导入:
canvas-constructor/napi-rs
或canvas-constructor/skia-canvas
或canvas-constructor/canvas
,但您可以' t导入
canvas-constructor
本身。如果选择NAPI-RS
首先需要安装该软件包。这三个选项的链接是在readme file 中。包装有两种类型:
从“ ./ x.js”
)。
但仍然支持,
x = requient 的节点版本中。
Code> requient()您可能会缺少名为
node的依赖性:util
在较旧 尽管该软件包与节点14及以上兼容,但请确保您使用的是最近版本。The package you refer to requires you to pick what it should use to render graphics. You can import:
canvas-constructor/napi-rs
orcanvas-constructor/skia-canvas
orcanvas-constructor/canvas
But you can't import
canvas-constructor
by itself. If you picknapi-rs
you would first need to install that package. A link to these three options are in the README file.There are two types of packages:
import x from "./x.js"
)x = require("./x.js")
.The authors of
canvas-constructor
made sure it works with both.However, if you use
require()
you may be missing a dependency namednode:util
. In older Node versions it's only available when usingimport
.Because of this, even though the package is listed as compatible with Node 14 and up, make sure you are using a recent version.
https://www.npmjs.com/package/package/package/canvas-constructor
是ES6软件包,当您使用常见的JS(nodejs默认)时,您可以使用其他软件包或修改Nodejs项目以使用ES6标准。
要修改您的项目设置,您可能想遵循此答案。
https://stackoverflow.com/a/a/29415291/13776400
https://www.npmjs.com/package/canvas-constructor
is an ES6 package, while you are using common js (nodejs default) you can either use a different package or modify your nodejs project to use ES6 standards.
To modify your project settings you may wanna follow this answer.
https://stackoverflow.com/a/29415291/13776400