导入模块报错ERR_MODULE_NOT_FOUND:Node.js路由文件导入问题求助
问题排查与解决
1. 文件名不匹配(最可能的原因)
你提供的路由代码文件名为routes.js,但在index.js中导入的路径是./routes/userRoutes.js——两者文件名完全不一致,Node.js自然找不到对应的模块。
- 解决:要么把路由文件重命名为
userRoutes.js,要么修改index.js中的导入路径为./routes/routes.js。
2. 文件名大小写问题
如果你的运行环境是Linux或macOS,文件名是区分大小写的。比如实际文件名为UserRoutes.js,但你导入时写的是userRoutes.js,就会触发找不到模块的错误。
- 解决:确保导入路径的文件名和实际文件名的大小写完全一致。
3. 未配置ES模块类型
Node.js默认使用CommonJS模块规范,如果你在代码中使用了ES模块的import/export语法,必须在项目根目录的package.json中添加"type": "module"字段,否则会导致模块加载异常(部分场景下也会表现为找不到模块)。
- 解决:在
package.json中添加如下配置:
{ "type": "module" }
4. 文件实际位置不符
虽然VSCode能高亮路径,但仍需确认:
routes文件夹和index.js确实在server目录下同级- 目标路由文件确实在
routes文件夹根目录下,而非子目录中 - 文件名没有拼写错误(比如多空格、字母漏写等)
内容的提问来源于stack exchange,提问作者Süleyman Eminbəyli
相关产品推荐
相关产品推荐

