我正在创建一个程序来分析安全摄像头流,但卡在了第一行。目前,我的 .js 文件除了导入 node-fetch 之外什么都没有,它给了我一条错误消息。我究竟做错了什么?
在适用于 Linux 的 Windows 子系统中运行 Ubuntu 20.04.2 LTS。
节点版本:
user@MYLLYTIN:~/CAMSERVER$ node -v
v14.17.6
Run Code Online (Sandbox Code Playgroud)
节点获取包版本:
user@MYLLYTIN:~/CAMSERVER$ npm v node-fetch
node-fetch@3.0.0 | MIT | deps: 2 | versions: 63
A light-weight module that brings Fetch API to node.js
https://github.com/node-fetch/node-fetch
keywords: fetch, http, promise, request, curl, wget, xhr, whatwg
dist
.tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0.tgz
.shasum: 79da7146a520036f2c5f644e4a26095f17e411ea
.integrity: sha512-bKMI+C7/T/SPU1lKnbQbwxptpCrG9ashG+VkytmXCPZyuM9jB6VU+hY0oi4lC8LxTtAeWdckNCTa3nrGsAdA3Q==
.unpackedSize: 75.9 kB
dependencies:
data-uri-to-buffer: ^3.0.1 fetch-blob: ^3.1.2
maintainers:
- endless <jimmy@warting.se>
- bitinn <bitinn@gmail.com>
- timothygu <timothygu99@gmail.com>
- akepinski <npm@kepinski.ch>
dist-tags: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Phusion Passenger 在生产服务器上启动我的 NodeJS API。我使用了最后的 ECM 语法来导入/导出我的模块。然而,当尝试访问我的 api 时,Passenger 返回此错误消息:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/***/api/server.mjs
at Module.load (internal/modules/cjs/loader.js:948:11)
at Function.Module._load (internal/modules/cjs/loader.js:790:14)
at Module.require (internal/modules/cjs/loader.js:974:19)
at Module.require (/opt/passenger/src/helper-scripts/node-loader.js:80:25)
at require (internal/modules/cjs/helpers.js:92:18)
at loadApplication (/opt/passenger/src/helper-scripts/node-loader.js:243:2)
at setupEnvironment (/opt/passenger/src/helper-scripts/node-loader.js:214:2)
at Object.<anonymous> (/opt/passenger/src/helper-scripts/node-loader.js:133:1)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) {
code: 'ERR_REQUIRE_ESM'
Run Code Online (Sandbox Code Playgroud)
我的 package.json 中有该"type": "module"行,我尝试将扩展名从 .js 更改为 .mjs,但没有效果。
我注意到,乘客使用带有“require”语法的 CJS 来加载我的 server.js,如下所示: https: //github.com/phusion/passenger/blob/stable-6.0/src/helper-scripts/node-loader .js。
function loadApplication() {
var appRoot = PhusionPassenger.options.app_root || process.cwd(); …Run Code Online (Sandbox Code Playgroud)