Node.js项目连接Mongoose时出现TypeError错误,寻求解决方案
Node.js项目连接Mongoose时出现TypeError错误,寻求解决方案
兄弟,我之前也碰到过一模一样的问题,你这个错误大概率是Mongoose和MongoDB Node.js驱动版本不兼容导致的——代码里尝试读取Collection.prototype但它是undefined,就是版本配对出问题的典型表现。
先把你遇到的错误信息贴出来方便大家参考:
/home/shafqat/Downloads/myProgramming/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:278 for (const key of Object.keys(Collection.prototype)) { TypeError: Cannot read properties of undefined (reading 'prototype') at Object.<anonymous> (/home/shafqat/Downloads/myProgramming/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:278:42)
给你几个亲测有效的解决方案,按顺序试试:
彻底清理现有依赖后重新安装兼容版本
先卸载当前的mongoose和mongodb包:npm uninstall mongoose mongodb然后直接安装最新稳定版的mongoose,它会自动匹配合适的mongodb驱动版本:
npm install mongoose如果自动安装还是有问题,手动指定经过验证的兼容版本组合
比如Mongoose 7.x搭配mongodb 5.x是很稳定的配对,执行:npm install mongoose@7.6.3 mongodb@5.9.1检查是否有依赖版本冲突
有些第三方包可能会间接引入不同版本的mongodb,导致冲突。你可以用这个命令查看项目依赖树:npm ls mongodb如果发现多个版本的mongodb,就在
package.json里添加overrides字段强制统一版本:"overrides": { "mongodb": "5.9.1" }然后彻底清理依赖文件后重新安装:
rm -rf node_modules package-lock.json npm install最后别忘了重启你的Node.js项目,有时候依赖更新后需要重启才能生效!
备注:内容来源于stack exchange,提问作者Shafqat Baloch
相关产品推荐
相关产品推荐

