Node.js运行Tinder克隆项目时出现ERR_MODULE_NOT_FOUND错误的求助
解决Node.js中
ERR_MODULE_NOT_FOUND报错的问题 我刚看完你的代码和问题描述,这个模块找不到的错误在使用ES模块(import/export)时非常常见,咱们一步步来排查和解决:
原因1:未开启ES模块模式
Node.js默认采用CommonJS模块规范(使用require/module.exports),但你的代码全程用了import/export语法。如果没有在项目配置中声明启用ES模块,Node会把你的文件当成CommonJS处理,从而触发模块找不到的错误。
解决方案:
在项目根目录的package.json文件中添加"type": "module"字段,示例配置如下:
{ "name": "tinder-clone", "version": "1.0.0", "type": "module", "dependencies": { "express": "^4.18.2", "mongoose": "^7.5.0" } }
原因2:文件导入路径/文件名不匹配
你在server.js中写了import Cards from "./dbCards";,但你的模型文件实际命名是dbCard.js(少了一个s),文件名和导入路径不匹配,Node自然找不到对应的模块。另外,ES模块导入本地文件必须加上.js后缀,不能省略。
解决方案:
二选一即可:
- 把模型文件名改为
dbCards.js,保持导入语句不变; - 修改
server.js中的导入语句为:
import Cards from "./dbCard.js";
原因3:依赖包未安装
如果你的项目还没有安装express和mongoose这两个依赖包,Node也会抛出模块找不到的错误。
解决方案:
在项目根目录下运行以下命令安装依赖:
npm install express mongoose
额外小修正
你的server.js最后一行有个笔误:lis terning应该是listening,虽然不影响模块加载,但修正后能避免日志信息混淆。
验证步骤
修改完成后,按以下顺序操作确认问题解决:
- 确认
package.json中已添加"type": "module"; - 确认文件名和导入路径完全匹配,且本地文件导入带
.js后缀; - 确认依赖包已成功安装;
- 用
node server.js或nodemon server.js重启服务。
这样应该就能彻底解决ERR_MODULE_NOT_FOUND的报错了。
内容的提问来源于stack exchange,提问作者Mohmd Eskandari
相关产品推荐
相关产品推荐

