源代码是:
const Sequelize = require('sequelize');
const sequelize = new Sequelize(process.env["DSN"]);
当尝试通过 Node 执行时(我坚持认为,我不是试图在浏览器中执行此代码),我得到:
$ node Sequelize.js
file:///Users/snwfdhmp/project/Sequelize.js:1
const Sequelize = require('sequelize');
^
ReferenceError: require is not defined
at file:///Users/snwfdhmp/project/Sequelize.js:1:19
at ModuleJob.run (internal/modules/esm/module_job.js:138:23)
at async Loader.import (internal/modules/esm/loader.js:178:24)
为什么会发生这种情况?互联网上的每篇文章都说“不要在浏览器中使用 require()”,但我没有使用浏览器。
我在 macOS 10.15.5 上使用 Node v14.4.0。
最佳答案
如果您在 package.json 中定义了 "type": "module"
,则应将其删除。
原因是,某些 CommonJS 变量在 ES 模块中不可用( reference ), 这些是:
require
exports
module.exports
__filename
__dirname
但是,可以使用 module.createRequire() 将 require
导入到 ES 模块中.
关于javascript - Node : ReferenceError: require is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62308545/