ExpressJS项目引入自定义类报import相关语法错误如何解决?
问题分析与解决方案
核心原因
Node.js 默认使用 CommonJS 模块规范,仅支持 require() 导入、module.exports 导出的语法,你使用的 import/export 属于 ES 模块规范,默认不被支持,因此触发报错:
SyntaxError: Cannot use import statement outside a module
可选解决方案
你可以任选以下一种方案解决问题:
- 方案1:将项目切换为 ES 模块模式
找到项目根目录下的package.json文件,在顶层配置中添加"type": "module"字段,添加后项目内所有.js文件都会被识别为 ES 模块,可直接使用import/export语法。
注意:切换为 ES 模块后,不能再使用 CommonJS 专属的require()、__dirname、__filename等语法和变量,如有需要要自行适配。 - 方案2:沿用 CommonJS 规范修改代码
不用修改项目配置,直接调整你写的模块导出导入逻辑即可:- 修改
/routes/MyClass.js的导出语句,将export default MyClass;替换为module.exports = MyClass; - 修改
/routes/index.js的引入语句,将import MyClass from './MyClass';替换为const MyClass = require('./MyClass');
- 修改
内容的提问来源于stack exchange,提问作者war0den
相关产品推荐
相关产品推荐

