VS Code运行nodemon server.js报ERR_MODULE_NOT_FOUND错误求助
ERR_MODULE_NOT_FOUND 报错问题解决
报错场景
执行 nodemon server.js 启动Tinder克隆项目后端服务时触发错误。
完整报错日志
[Running] node "c:\Programing\WEB DEV\M.E.R.N\App clone Projects\Tinder clone\tinder-backend\server.js" node:internal/errors:464 ErrorCaptureStackTrace(err); ^ 错误 [ERR_MODULE_NOT_FOUND]:无法找到从 c:\Programing\WEB DEV\M.E.R.N\App clone Projects\Tinder clone\tinder-backend\server.js 中导入的模块 'c:\Programing\WEB DEV\M.E.R.N\App clone Projects\Tinder clone\tinder-backend\dbCard.js' at new NodeError (node:internal/errors:371:5) at finalizeResolution (node:internal/modules/esm/resolve:416:11) at moduleResolve (node:internal/modules/esm/resolve:932:10) at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:1044:11) at Loader.resolve (node:internal/modules/esm/loader:89:40) at Loader.getModuleJob (node:internal/modules/esm/loader:242:28) at ModuleWrap. (node:internal/modules/esm/module_job:76:40) at link (node:internal/modules/esm/module_job:75:36) { code: 'ERR_MODULE_NOT_FOUND' } [Done] 程序以退出码1终止,运行时长0.326秒
错误产生原因
tinder-backend目录下不存在dbCard.js文件,可能是文件被误删、文件名拼写错误(ESM模块导入严格区分大小写,Windows系统文件名不区分大小写但Node运行时会校验)、文件被存放在其他子目录- 项目使用ES Module规范(package.json中配置了
"type": "module"),导入本地文件时未补全.js后缀,比如写了import dbCard from './dbCard'而非import dbCard from './dbCard.js',Node ESM规范要求本地相对路径导入必须补全文件后缀 - 导入路径书写错误,相对路径层级不对、绝对路径存在拼写错误
解决方法
- 核对
tinder-backend目录下是否存在dbCard.js文件,确认文件名拼写、大小写和导入语句中的写法完全一致 - 检查
server.js中导入dbCard的语句:- 用ESM的
import语法的话,必须补全.js后缀,正确示例:import dbCard from './dbCard.js' - 用CommonJS的
require语法的话,核对路径层级正确即可,不需要强制补全后缀
- 用ESM的
- 如果
dbCard.js存放在子目录中,修正导入路径到对应位置,比如文件在./models/dbCard.js,导入语句就要对应修改为import dbCard from './models/dbCard.js' - 确认文件没有被杀毒软件误隔离、没有被移入回收站,恢复后重新执行启动命令即可
内容的提问来源于stack exchange,提问作者Ankit Khanda F03
相关产品推荐
相关产品推荐

