Node.js导入database模块报错ERR_MODULE_NOT_FOUND,求解决
问题解决:ERR_MODULE_NOT_FOUND 找不到config/database模块
首先明确:你看到的错误根源不是server.js导入database/index.js的问题,控制台报错清晰指向:database/index.js里导入../config/database时找不到对应模块。以下是具体排查和修复步骤:
1. 检查文件路径与后缀
ESM(ES模块)要求导入必须使用完整文件后缀,且路径严格匹配:
- 确认
src/config/目录下存在database.js文件(注意是.js后缀,不是无后缀或其他格式) - 修改
database/index.js里的导入语句,添加.js后缀:// 原代码 import config from '../config/database'; // 修改后 import config from '../config/database.js'; - 同理,
import Model from '../models'也需要修正:如果models是文件夹,需指定入口文件(比如../models/index.js);如果是单个文件,加.js后缀。
2. 修复代码语法错误
database/index.js的构造函数里有语法错误,两个方法调用之间缺少分号:
// 原代码 this.init() this.associate() // 修改后 this.init(); this.associate();
3. 补全models数组
当前models数组是空的,init和associate方法遍历空数组不会执行任何操作,需要把你的模型类导入并加入数组:
// 示例:导入User模型 import User from '../models/User.js'; // 把模型加入数组 const models = [User];
4. 确认package.json配置
确保"type": "module"是package.json的顶层属性,格式正确:
{ "name": "your-project-name", "version": "1.0.0", "type": "module", // 其他配置... }
完成以上步骤后,重新启动服务,应该能解决模块找不到的问题。
内容的提问来源于stack exchange,提问作者Mateus Full Stack Dev
相关产品推荐
相关产品推荐

