Mongoose连接MongoDB报autoReconnect不支持错误如何解决
问题原因
你使用的是Mongoose 6.x及以上版本,该版本底层依赖的MongoDB Node.js驱动已经正式废弃并移除了autoReconnect配置参数,所以传入该参数会直接触发参数不支持的报错。
*注意:Mongoose 6.x开始默认开启自动重连能力,无需手动配置该参数即可实现连接断开后的自动重连逻辑。
正确修复方案
- 第一步:直接删除
options配置中的autoReconnect: true行即可,无需额外添加替代参数 - 第二步:如果你需要连接本地MongoDB,将
DB_CONNECTION_URL替换为本地数据库地址,默认本地MongoDB地址为mongodb://localhost:27017/WhatsAppDB - 第三步(可选优化):调用
connectDB函数时添加异常捕获逻辑,避免出现未处理的Promise拒绝警告:
connectDB() .then(() => console.log("数据库连接成功")) .catch(err => console.error("数据库连接异常:", err))
修复后完整的index.js代码
import mongoose from "mongoose"; // 连接本地数据库请取消注释下方地址,注释原云数据库地址 // const DB_CONNECTION_URL = "mongodb://localhost:27017/WhatsAppDB"; const DB_CONNECTION_URL = "mongodb+srv://user:<password>@cluster0.cjkjw.mongodb.net/WhatsAppDB?retryWrites=true&w=majority"; const connectDB = () => { console.log("DB trying to connect on " + new Date()); const options = { keepAlive: 1, maxPoolSize: 10, useNewUrlParser: true, useUnifiedTopology: true, }; return mongoose.connect(DB_CONNECTION_URL, options); }; export default connectDB;
内容的提问来源于stack exchange,提问作者Krishnadev. V
相关产品推荐
相关产品推荐

