NodeJS连接MongoDB Atlas报错:mongodb.connect is not a function
解决MongoDB连接报错:TypeError: mongodb.connect is not a function
问题出在你导入MongoDB模块的方式错误,require('mongodb')返回的模块对象里并没有mongodb这个属性,导致你调用mongodb.connect时找不到对应的方法。
修正方案(两种可选)
方案1:导入MongoClient并使用其connect方法
let express= require('express') // 正确导入MongoClient const { MongoClient } = require('mongodb') let app = express() let db let connectionString = 'mongodb+srv://admin:admin@cluster0.sfis6s3.mongodb.net/ToDoApp?retryWrites=true&w=majority' // 使用MongoClient.connect MongoClient.connect( connectionString, {useNewUrlParser: true}, function(err, client){ // 新增错误处理,避免连接失败后无提示 if (err) { console.error('数据库连接失败:', err) return } db = client.db() console.log('数据库连接成功') }) app.use(express.urlencoded({extended:false}))
方案2:直接解构导入connect方法
let express= require('express') // 直接导入connect方法 const { connect } = require('mongodb') let app = express() let db let connectionString = 'mongodb+srv://admin:admin@cluster0.sfis6s3.mongodb.net/ToDoApp?retryWrites=true&w=majority' // 直接调用connect connect( connectionString, {useNewUrlParser: true}, function(err, client){ if (err) { console.error('数据库连接失败:', err) return } db = client.db() console.log('数据库连接成功') }) app.use(express.urlencoded({extended:false}))
额外提示
- 建议加上错误处理逻辑,方便排查连接失败的原因
- 如果你使用的是MongoDB驱动旧版本(3.x及以下),也可以用
const mongodb = require('mongodb'),然后调用mongodb.MongoClient.connect,但更推荐使用新版本的解构导入方式
内容的提问来源于stack exchange,提问作者Ali hassnain
相关产品推荐
相关产品推荐

