You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭建MERN栈应用遭遇ERR_MODULE_NOT_FOUND模块未找到错误

解决MERN栈中ERR_MODULE_NOT_FOUND错误的方案

错误信息

node:internal/errors:496
    ErrorCaptureStackTrace(err);
    ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module
server\controllers\authController.js
    at new NodeError (node:internal/errors:405:5)
    at finalizeResolution (node:internal/modules/esm/resolve:224:11)
    at moduleResolve (node:internal/modules/esm/resolve:836:10)
    at defaultResolve (node:internal/modules/esm/resolve:1034:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:375:12)       
    at ModuleLoader.resolve (node:internal/modules/esm/loader:344:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:220:38)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39)
    at link (node:internal/modules/esm/module_job:84:36) {
  url: URL {},
  code: 'ERR_MODULE_NOT_FOUND'
}

排查与解决步骤

  • 核对文件路径准确性
    确认导入语句中的server\controllers\authController.js和实际文件位置完全匹配:

    • 建议在ES模块导入时用/作为路径分隔符,避免Windows系统下的转义问题
    • 检查文件是否真的存在于指定目录,Linux/macOS环境下注意文件名大小写区分
    • 相对路径要对应层级,比如用../向上导航到父目录
  • 确认文件扩展名是否完整
    如果项目启用ES模块(package.json中设置"type": "module"),导入必须指定完整的.js扩展名:

    // 正确写法
    import authController from './server/controllers/authController.js';
    // 错误写法(ES模块不允许省略扩展名)
    import authController from './server/controllers/authController';
    
  • 统一模块语法规范

    • 若用ES模块(package.json含"type": "module"),全程使用import/export,不能混用require()
    • 若用CommonJS,全程使用require(),导入时可省略扩展名,但路径必须准确
  • 检查package.json的type配置
    查看项目根目录的package.json:

    • 若存在"type": "module",所有.js文件按ES模块处理,必须带扩展名导入
    • 若不存在,默认按CommonJS处理,此时用import会触发模块类型不兼容错误
  • 清理缓存重启服务
    执行命令清理Node.js模块缓存,再重启服务:

    node --clear-module-cache
    npm start
    

内容的提问来源于stack exchange,提问作者Ali Al-gharib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:35:07