Express服务器终端运行报错:无法在模块外使用import语句
解决Node.js中"Cannot use import statement outside a module"报错(Express场景)
我在使用Express搭建服务器时,执行node index.js命令遇到如下报错:
$ node index.js (node:7516) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. (Use `node --trace-warnings ...` to show where the warning was created) C:\Users\Rutuja123\Desktop\Rutuja\Web Development\2.4 QR Code Project\Express server\index.js:1 import Express from "Express"; ^^^^^^ SyntaxError: Cannot use import statement outside a module at internalCompileFunction (node:internal/vm:73:18) at wrapSafe (node:internal/modules/cjs/loader:1178:20) at Module._compile (node:internal/modules/cjs/loader:1220:27) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 Node.js v18.17.0
报错本质是Node.js默认以CommonJS模块规范加载文件,而代码中使用了ES模块的import语法,需明确标识文件为ES模块,以下是两种可行的解决方式:
方法一:修改package.json配置
- 在项目根目录的
package.json中添加或修改type字段:
{ "type": "module", // 项目其他原有配置 }
- 保存文件后,重新执行
node index.js即可。
方法二:修改文件扩展名
将index.js重命名为index.mjs,之后执行命令:
node index.mjs
注意:如果项目中还有其他使用import的.js文件,需同步修改扩展名,或统一采用方法一的全局配置。
内容的提问来源于stack exchange,提问作者Rutuja Rathod
相关产品推荐
相关产品推荐

