[英]Connection Timeout for mongodb using mongoose
我有一个在 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)
我使用 mongoose.connect 连接到本地 mongodb 实例的数据库。 连接方式有什么变化吗?
不久前我遇到了这个问题。 这完全取决于您使用的是哪个版本的mongoose
和mongodb-core
。 现在,您必须指定以下参数:
mongoose.connect("mongodb://user:password@address/db", {
server: {
socketOptions: {
socketTimeoutMS: 0,
connectionTimeout: 0
}
}
});
然而,就在昨天,正确的参数在哪里
mongoose.connect("mongodb://user:password@address/db", {
server: {
socketOptions: {
socketTimeoutMS: 0,
connectTimeoutMS: 0
}
}
});
我真的不知道该相信什么了。。
我意识到这是一个老问题,但现在接受的答案包含已弃用的代码。 要使用现代版本的 Mongoose 设置连接超时,您现在需要执行以下操作:
mongoose.connect(uri, {
useUnifiedTopology: true,
serverSelectionTimeoutMS: 1000,
})
socketTimeoutMS
和connectionTimeout
仅在useUnifiedTopology
设置为false
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.