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

Node.js MODULE_NOT_FOUND错误:本地正常部署平台报错求助

Node.js模块找不到及Vercel部署404问题

错误信息

node:internal/modules/cjs/loader:959   throw err;  ^


Error: Cannot find module '../controllers/coursecontrollers'
Require stack:
- /project/E_Learning_Backend/routes/CourseRoute.js
- /project/E_Learning_Backend/app.js
- /project/E_Learning_Backend/server.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:956:15)
    at Function.Module._load (node:internal/modules/cjs/loader:804:27)
    at Module.require (node:internal/modules/cjs/loader:1028:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/project/E_Learning_Backend/routes/CourseRoute.js:2:120)
    at Module._compile (node:internal/modules/cjs/loader:1126:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
    at Module.load (node:internal/modules/cjs/loader:1004:32)
    at Function.Module._load (node:internal/modules/cjs/loader:839:12)
    at Module.require (node:internal/modules/cjs/loader:1028:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/project/E_Learning_Backend/routes/CourseRoute.js',
    '/project/E_Learning_Backend/app.js',
    '/project/E_Learning_Backend/server.js'
  ]
}

问题背景

项目本地运行正常,但上传到CodeSandbox时出现上述模块找不到错误,部署到Vercel时返回404资源未找到错误。

解决办法

1. 修复模块引用大小写问题

CodeSandbox和Vercel使用Linux环境,文件名区分大小写,而本地Windows环境不区分。查看项目文件结构,controllers目录下的实际文件名是CourseControllers.js,但routes/CourseRoute.js里的引用路径写的是../controllers/coursecontrollers(全小写),导致系统找不到文件。

修改CourseRoute.js中的引用代码,改为匹配实际文件名的大小写:

const courseController = require('../controllers/CourseControllers');

2. 解决Vercel部署404问题

除了修复大小写,还需确保Vercel部署配置正确:

  • 检查package.json中的start脚本,确保指向入口文件server.js:
    "scripts": {
      "start": "node server.js"
    }
    
  • 在项目根目录创建vercel.json文件,配置路由规则和构建方式:
    {
      "builds": [
        {
          "src": "server.js",
          "use": "@vercel/node"
        }
      ],
      "routes": [
        {
          "src": "/(.*)",
          "dest": "server.js"
        }
      ]
    }
    
    这个配置会让所有请求都转发到server.js处理,避免静态资源路由导致的404。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:42:20