部署Node.js电商后端至Render.com时遇模块未找到错误求助
部署Render.com电商后端时出现ERR_MODULE_NOT_FOUND错误
错误日志
Oct 19 12:56:30 PM ==> Starting service with 'npm start' Oct 19 12:56:33 PM Oct 19 12:56:33 PM > api@1.0.0 start /opt/render/project/src Oct 19 12:56:33 PM > node ./server.js Oct 19 12:56:33 PM Oct 19 12:56:34 PM internal/process/esm_loader.js:74 Oct 19 12:56:34 PM internalBinding('errors').triggerUncaughtException( Oct 19 12:56:34 PM ^ Oct 19 12:56:34 PM Oct 19 12:56:34 PM Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/opt/render/project/src/Middleware/AuthMiddleware.js' imported from /opt/render/project/src/Routes/ProductRoutes.js Oct 19 12:56:34 PM at finalizeResolution (internal/modules/esm/resolve.js:276:11) Oct 19 12:56:34 PM at moduleResolve (internal/modules/esm/resolve.js:699:10) Oct 19 12:56:34 PM at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11) Oct 19 12:56:34 PM at Loader.resolve (internal/modules/esm/loader.js:88:40) Oct 19 12:56:34 PM at Loader.getModuleJob (internal/modules/esm/loader.js:241:28) Oct 19 12:56:34 PM at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40) Oct 19 12:56:34 PM at link (internal/modules/esm/module_job.js:55:36) { Oct 19 12:56:34 PM code: 'ERR_MODULE_NOT_FOUND' Oct 19 12:56:34 PM } Oct 19 12:56:34 PM npm ERR! code ELIFECYCLE Oct 19 12:56:34 PM npm ERR! errno 1 Oct 19 12:56:34 PM npm ERR! api@1.0.0 start: `node ./server.js` Oct 19 12:56:34 PM npm ERR! Exit status 1 Oct 19 12:56:34 PM npm ERR! Oct 19 12:56:34 PM npm ERR! Failed at the api@1.0.0 start script. Oct 19 12:56:34 PM npm ERR! This is probably not a problem with npm. There is likely additional logging output above. Oct 19 12:56:34 PM Oct 19 12:56:34 PM npm ERR! A complete log of this run can be found in: Oct 19 12:56:34 PM npm ERR! /opt/render/.cache/_logs/2022-10-19T11_56_34_819Z-debug.log Oct 19 12:58:05 PM ==> Starting service with 'npm start' Oct 19 12:58:08 PM Oct 19 12:58:08 PM > api@1.0.0 start /opt/render/project/src Oct 19 12:58:08 PM > node ./server.js Oct 19 12:58:08 PM Oct 19 12:58:09 PM internal/process/esm_loader.js:74 Oct 19 12:58:09 PM internalBinding('errors').triggerUncaughtException( Oct 19 12:58:09 PM ^ Oct 19 12:58:09 PM Oct 19 12:58:09 PM Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/opt/render/project/src/Middleware/AuthMiddleware.js' imported from /opt/render/project/src/Routes/ProductRoutes.js Oct 19 12:58:09 PM at finalizeResolution (internal/modules/esm/resolve.js:276:11) Oct 19 12:58:09 PM at moduleResolve (internal/modules/esm/resolve.js:699:10) Oct 19 12:58:09 PM at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11) Oct 19 12:58:09 PM at Loader.resolve (internal/modules/esm/loader.js:88:40) Oct 19 12:58:09 PM at Loader.getModuleJob (internal/modules/esm/loader.js:241:28) Oct 19 12:58:09 PM at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40) Oct 19 12:58:09 PM at link (internal/modules/esm/module_job.js:55:36) { Oct 19 12:58:09 PM code: 'ERR_MODULE_NOT_FOUND' Oct 19 12:58:09 PM } Oct 19 12:58:09 PM npm ERR! code ELIFECYCLE Oct 19 12:58:09 PM npm ERR! errno 1 Oct 19 12:58:09 PM npm ERR! api@1.0.0 start: `node ./server.js` Oct 19 12:58:09 PM npm ERR! Exit status 1 Oct 19 12:58:09 PM npm ERR! Oct 19 12:58:09 PM npm ERR! Failed at the api@1.0.0 start script. Oct 19 12:58:09 PM npm ERR! This is probably not a problem with npm. There is likely additional logging output above. Oct 19 12:58:09 PM Oct 19 12:58:09 PM npm ERR! A complete log of this run can be found in: Oct 19 12:58:09 PM npm ERR! /opt/render/.cache/_logs/2022-10-19T11_58_09_816Z-debug.log
相关代码片段
ProductRoutes.js
import express from "express"; import asyncHandler from "express-async-handler"; import { admin, protect } from "../Middleware/AuthMiddleware.js"; import Product from "../Models/ProductModel.js";
package.json
{ "name": "api", "version": "1.0.0", "description": "", "type": "module", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node ./server.js", "frontend": "cd frontend && npm start", "dev": "concurrently \"npm run frontend\" \"npm run server\"", "server": "node ./server.js", }
问题
已在package.json中指定"type": "module",但仍提示无法找到模块/opt/render/project/src/Middleware/AuthMiddleware.js,可能的原因是什么?
排查方向
- 大小写不匹配:Render运行在Linux环境,文件名区分大小写。本地Windows/macOS环境不区分,可能本地文件实际是
middleware/Authmiddleware.js,但导入写的是../Middleware/AuthMiddleware.js,导致部署后找不到文件。 - 文件未上传到仓库:检查
.gitignore规则,确认AuthMiddleware.js没有被忽略,且已提交到Git仓库中,Render才能拉取到该文件。 - 路径层级错误:确认项目目录结构是否和导入路径匹配。比如
Routes和Middleware是否确实是同级目录,若Middleware在其他子目录下,导入路径需要调整。 - 文件名拼写错误:检查实际文件名是否为
AuthMiddleware.js,有没有拼写错误(比如少字母、后缀错误)。
内容的提问来源于stack exchange,提问作者muscleheadDeveloper
相关产品推荐
相关产品推荐

