Dan*_*Dan 13 mongoose mongodb node.js
我有一个在Node,express和MongoDB上运行的Web应用程序.我使用猫鼬作为ODM.当我用mongodb版本v3.0.1测试我的应用程序时,它运行正常并且没有错误.但是当我运行相同的代码v3.2.10时,我会在一段时间后得到连接超时.
我收到以下错误:
Error: connection timeout at null.<anonymous> (/webapp/node_module/mongoose/lib/drivers/node-mongodb-native/connection.js:186:17)
Run Code Online (Sandbox Code Playgroud)
我使用mongoose.connect进行与本地mongodb实例的数据库连接.连接方式有什么变化吗?
小智 15
我刚才有这个问题.这一切都取决于哪个版本的mongoose
与mongodb-core
您正在使用.现在,您必须指定以下参数:
mongoose.connect("mongodb://user:password@address/db", {
server: {
socketOptions: {
socketTimeoutMS: 0,
connectionTimeout: 0
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是,就在昨天,正确的参数在哪里
mongoose.connect("mongodb://user:password@address/db", {
server: {
socketOptions: {
socketTimeoutMS: 0,
connectTimeoutMS: 0
}
}
});
Run Code Online (Sandbox Code Playgroud)
我真的不知道该相信什么了..
我意识到这是一个老问题,但接受的答案现在包含已弃用的代码。要使用 Mongoose v5+ 设置连接超时,您现在需要将所有选项放在选项对象的顶层,而不是像以前那样嵌套:
mongoose.connect(uri, {
useUnifiedTopology: true, // For Mongoose 5 only. Remove for Mongoose 6+
serverSelectionTimeoutMS: 1000, // Defaults to 30000 (30 seconds)
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13837 次 |
最近记录: |