Node.js+MongoDB开发REST API时出现MODULE_NOT_FOUND找不到模块错误
问题原因及解决方案
错误1:Cannot find module '../models/book'
- 错误原因:存储Book模型的文件名为
userModel.js,但你在routes/users.js第3行的引入语句var Book = require('../models/book');中,指定的路径对应文件是models/book.js,二者不匹配导致Node.js找不到对应模块。 - 解决方法(二选一即可):
- 将
models目录下的userModel.js重命名为book.js - 将
routes/users.js第3行的引入代码修改为:var Book = require('../models/userModel');
- 将
错误2:Cannot find module './routes/books'
- 错误原因:你在
app.js第9行写了const books = require('./routes/books');,还在第22行注册了app.use('/books', books);路由规则,但你的routes目录下并没有创建books.js路由文件,因此触发模块找不到的报错。 - 解决方法(二选一即可):
- 如果你不需要单独的books路由接口,直接删除
app.js中的两行相关代码即可:
const books = require('./routes/books'); app.use('/books', books);- 如果你需要使用books路由,在
routes目录下新建books.js文件,编写对应的路由逻辑即可。
- 如果你不需要单独的books路由接口,直接删除
额外注意项
你的数据库连接文件命名为Database.js,Windows系统对文件名大小写不敏感不会触发问题,但部署到Linux服务器时大小写敏感会导致找不到模块,建议统一将文件名改为小写database.js,规避后续部署风险。
内容的提问来源于stack exchange,提问作者Revan
相关产品推荐
相关产品推荐

