为什么我有以下错误require is not defined with express?

时间:2021-04-02 04:13:07

标签: node.js express

我的 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

1 个答案:

答案 0 :(得分:0)

你的文件是 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