【发布时间】:2021-04-04 20:59:36
【问题描述】:
我不知道在运行 nodemon server.js 时如何解决此错误p>
从“esm”导入esm
在哪里?
package.json
{
"name": "facebook-back",
"version": "1.0.0",
"description": "",
"main": "server.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "server.js"
},
"author": "Ethan",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"gridfs-stream": "^1.1.1",
"mongoose": "^5.11.8",
"multer": "^1.4.2",
"multer-gridfs-storage": "^4.2.0",
"path": "^0.12.7",
"pusher": "^4.0.2"
}
}
终端输出
$ nodemon server.js
[nodemon] 2.0.6
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
internal/modules/cjs/loader.js:1149
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users/ethanding/Desktop/projects/facebook/facebook-back/server.js
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1149:13)
at Module.load (internal/modules/cjs/loader.js:977:32)
at Function.Module._load (internal/modules/cjs/loader.js:877:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47 {
code: 'ERR_REQUIRE_ESM'
}
[nodemon] app crashed - waiting for file changes before starting...
server.js
import express from 'express'
import mongoose from 'mongoose'
import cors from 'cors'
import multer from 'multer'
import GridFsStorage from 'multer-gridfs-storage'
import Grid from 'gridfs-stream'
import bodyParser from 'body-parser'
import path from 'path'
import Pusher from 'pusher'
Grid.mongo = mongoose.mongo
// app config
const app = express()
const port = process.env.PORT || 9000
// middlewares
app.use(bodyParser.json())
app.use(cors())
//api routes
app.get('/', (req, res) => res.status(200).send('hello world'))
// listen
app.listen(port, () => console.log(`Listening to port ${port}`))
【问题讨论】:
-
不清楚是什么问题。您应该提供minimal reproducible example。向我们展示您的 package.json 和终端输出一切都很好,但是您遗漏了您的 JS!你为什么要问nodemon?您是否成功地独立运行了相同的程序并且只遇到了 nodemon 的问题?
-
你机器上的nodejs版本是什么
-
很抱歉,现在包含 server.js 文件。我一直在关注一个教程,直到他们使用 nodemon(它在终端中使用的方式)来启动应用程序的后端,但是当我尝试它时给了我这个通知
标签: javascript node.js ecmascript-6 nodemon