【问题标题】:Why I have the following error require is not defined with express?为什么我有以下错误 require is not defined with express?
【发布时间】:2021-04-02 12:24:34
【问题描述】:

我的 server.js 文件返回以下错误:ReferenceError: require is not defined

server.js

import express from 'express'
import { readdirSync } from 'fs';

const app = express()

// Route middleware
readdirSync('./routes').map((route) => 
    app.use('/api', require(`./routes/${route}`))
)

const port = 8000

app.listen(port, () => console.log(`listening on port ${port}`))

请注意,在我的 package.json 中,我使用:“type”:“module” 只是为了使用 import 而不是 require

【问题讨论】:

  • 在 package.json 我有这个: "type": "module", "scripts": { "start": "nodemon server.js" },

标签: node.js express


【解决方案1】:

您的文件是 ES6 JS,一种 .mjs 文件;你同时使用importrequire (ES5)。在 ES6 JS 代码中使用require,这个模块很好:mjs-require

安装mjs-require以在ES6代码中使用require函数:

npm i mjs-require --save

在启用require 功能的情况下运行.mjs 文件:

node --experimental-modules -r mjs-require yourfile.mjs

【讨论】:

  • Thx @datdinhquoc,不幸的是,这篇文章返回以下错误:'node' 未被识别为内部或外部命令、可运行程序或批处理文件。 [nodemon] 应用程序崩溃 - 启动前等待文件更改...
  • 哦不,你应该正确安装node.js,node是node.js的命令,它必须在那里
猜你喜欢
  • 2022-12-01
  • 2021-06-11
  • 1970-01-01
  • 2020-05-03
  • 2020-08-30
  • 2017-10-25
  • 2021-09-08
  • 2019-09-29
  • 2019-09-06
相关资源
最近更新 更多