“没有出口主要的出口主要定义”错误node.js

发布于 2025-02-09 12:24:02 字数 1482 浏览 2 评论 0原文

我正在尝试使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

茶花眉 2025-02-16 12:24:02

您指的是的软件包您要选择它应该用来渲染图形的内容。您可以导入:

  • canvas-constructor/napi-rs
  • canvas-constructor/skia-canvas
  • canvas-constructor/canvas

但您可以' t导入canvas-constructor本身。如果选择NAPI-RS首先需要安装该软件包。这三个选项的链接是在readme file 中。


包装有两种类型:

  • ES6模块(也用于浏览器,从“ ./ x.js”
  • commonjs (较老) (“ ./ 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 or
  • canvas-constructor/skia-canvas or
  • canvas-constructor/canvas

But you can't import canvas-constructor by itself. If you pick napi-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:

  • ES6 Modules (also used in browsers, import x from "./x.js")
  • CommonJS (older but still supported, 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 named node:util. In older Node versions it's only available when using import.

Because of this, even though the package is listed as compatible with Node 14 and up, make sure you are using a recent version.

落花随流水 2025-02-16 12:24:02

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文