Node.js Express导入模块报ERR_MODULE_NOT_FOUND错误排查求助
问题原因
Node.js 原生 ES 模块(ESM)规范要求,导入本地相对路径的自定义模块时必须显式声明文件扩展名,不会像 CommonJS 规范或者前端打包工具那样自动补全 .js 后缀。你当前省略了 .js 后缀,Node 会直接查找无后缀的 userService 文件,找不到就抛出模块不存在的报错。
修复方案
修改 userController.js 中的导入语句,补上 .js 后缀即可:
// 修改前 // import userService from "../services/userService"; // 修改后 import userService from "../services/userService.js";
额外验证点
如果修改后仍然报错,可以再核对两个配置:
- 项目根目录的
package.json中是否配置了"type": "module",开启 ESM 支持 - 目录结构是否匹配:
userService.js确实在services目录下,和controllers目录同级
内容的提问来源于stack exchange,提问作者Khả Nam
相关产品推荐
相关产品推荐

