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

使用import替代require时遇ERR_MODULE_NOT_FOUND错误求助

解决ES模块(import)导入时的模块找不到问题

先看你报错的核心信息:Cannot find module '...controller\constroller'——这里明显把controller拼写成了constroller,这是第一个要修正的问题。

除此之外,用import替代require时,还有几个ES模块的规则必须遵守:

  • 必须指定完整文件扩展名:CommonJS的require可以省略.js,但ES模块的import必须写全,比如import xxx from './xxx.js',不能只写./xxx
  • 配置项目为ES模块模式:在项目根目录的package.json里添加"type": "module"字段,告诉Node.js把所有.js文件当作ES模块处理,否则会默认用CommonJS规则,混用两种模块语法会出问题。示例配置:
{
  "name": "expense-management-system",
  "type": "module",
  // 其他原有字段...
}
  • 检查相对路径正确性:从routes/userRoutes.js导入controller的话,路径应该是../controller/controller.js(假设controller文件夹和routes同级),别写错层级或者文件名。

回到你的代码,你自己写的import userRoutes from "./routes/userRoutes.js";是没问题的,报错根源在userRoutes.js内部的导入语句——把里面的constroller改成controller,再确保路径和扩展名都正确,应该就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:54:59