源代码是:const Sequelize = require('sequelize');const sequelize = new Sequelize(process.env["DSN"]);当试图通过节点执行时(我坚持,我不是试图在我的浏览器中执行此代码),我得到:$ node Sequelize.jsfile:///Users/snwfdhmp/project/Sequelize.js:1const 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 上使用节点 v14.4.0。
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
如果您在包.json 中定义了它,则应将其删除。"type": "module"
原因是,某些 CommonJS 变量在 ES 模块(参考)中不可用,它们是:
require
exports
module.exports
__filename
__dirname
但是,可以使用模块导入到 ES 模块中。require
添加回答
举报
0/150
提交
取消