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

Express.js项目启动报错:Cannot find module '../controllers/userController'

解决Express.js中"Cannot find module '../controllers/userController'"错误

以下是针对该问题的排查和解决步骤:

1. 检查文件真实扩展名

Windows默认会隐藏已知文件类型的扩展名,可能你的userController.js实际是userController.js.txt(后缀被隐藏):

  • 打开文件资源管理器,点击「查看」选项卡,勾选「文件扩展名」
  • 确认controllers文件夹下的文件确实是userController.js,无多余后缀

2. 验证文件名大小写一致性

虽然Windows文件系统不区分大小写,但Node.js的模块解析在部分场景(如使用WSL、Git大小写敏感配置)下会严格区分:

  • 确认userRoutes.js中require('../controllers/userController')的文件名大小写,和实际文件userController.js完全一致(比如有没有写成UserController.js)

3. 确认启动服务器的工作目录

如果启动服务器时的工作目录不正确,相对路径解析会出错:

  • 正确的工作目录应为server文件夹(包含package.json和src的目录)
  • 建议在package.json中添加启动脚本:
    "scripts": {
      "start": "node src/app.js"
    }
    
  • 然后在server目录下运行npm start,避免手动指定路径时的工作目录问题

4. 检查文件读取权限

极少数情况下,文件权限不足会导致Node.js无法加载模块:

  • 右键userController.js,选择「属性」→「安全」
  • 确保当前运行Node.js的用户拥有该文件的读取权限

5. 清除Node.js模块缓存

Node.js可能缓存了错误的模块解析结果,尝试:

  • 关闭当前终端,重新打开后启动服务器
  • 若使用了nodemon等工具,重启nodemon进程

内容的提问来源于stack exchange,提问作者furb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:55:14