调用mongodb.connect时出现TypeError错误是什么原因?
错误产生原因
- 你实际运行的
server.js第8行代码调用了mongodb.getConnection()方法,该方法在官方MongoDB Node.js驱动的所有版本中都不存在,你贴出的代码片段和实际运行的代码存在出入,是导致该报错的直接原因。 - 若确认代码中没有调用
getConnection,则大概率是MongoDB驱动导入错误、安装损坏,或是你使用的驱动版本和参考的API文档版本不匹配导致的API调用异常。
解决方法
- 首先打开
/Users/auston.ivison/Desktop/todo-app/server.js文件,定位到第8行,删除对mongodb.getConnection的调用,改为正确的连接方法。 - 确认MongoDB驱动的导入方式正确,正确导入语句如下:
// 全量导入 const mongodb = require('mongodb') // 更推荐的按需导入方式 const { MongoClient } = require('mongodb')
- 不同版本的驱动连接写法有所区别,可根据你的版本选择对应写法:
- 3.x版本回调式写法(和你贴出的代码逻辑一致):
const { MongoClient } = require('mongodb') MongoClient.connect(connectionString, { useNewUrlParser: true, useUnifiedTopology: true }, function(err, client) { if (err) throw err const db = client.db() app.listen(3000) })- 4.x及以上版本推荐的Promise式写法:
const { MongoClient } = require('mongodb') const client = new MongoClient(connectionString) async function initApp() { await client.connect() const db = client.db('你的数据库名称') app.listen(3000) } initApp().catch(console.error) - 如果上述操作后仍报错,执行命令重新安装驱动:
npm uninstall mongodb && npm install mongodb
内容的提问来源于stack exchange,提问作者AustonIvison
相关产品推荐
相关产品推荐

