Express.js中Cannot find module './routes/products'错误的解决方法
解决Express.js中"Cannot find module './routes/products'"错误
错误原因
这个错误是Node.js解析模块路径时,无法找到指定位置的products.js文件,核心诱因包括:目录结构不匹配、文件名/路径拼写错误、大小写不匹配(部分系统环境下)、模块缓存异常。
修复步骤
1. 核对目录结构
确保项目目录层级完全符合预期,正确结构如下:
Express JS/ ├─ index.js └─ routes/ ├─ products.js └─ users.js
确认routes文件夹和index.js处于同一级目录,且products.js确实存在于routes文件夹内。
2. 检查文件名与路径拼写
- 确认
products.js的文件名完全正确,没有拼写错误(比如写成product.js、Products.js) - 检查
routes文件夹名称是否正确,避免写成route、Routes等变体
3. 显式指定文件后缀
Node.js默认会尝试补全.js后缀,但部分场景下可能出现解析异常,可在require语句中显式添加后缀:
// 修改index.js中的require语句 let productsRouter = require("./routes/products.js"); let usersRouter = require("./routes/users.js");
4. 清理Node.js模块缓存
若上述步骤无效,可能是模块缓存导致的异常,执行以下命令清理缓存并重启项目:
node --clear-module-cache ./index.js
额外验证点
- 确认文件没有被误删除或移动到其他目录
- 检查是否有.gitignore或其他工具将
routes文件夹或文件排除在外
内容的提问来源于stack exchange,提问作者Abrham_m
相关产品推荐
相关产品推荐

