繁体   English   中英

使用猫鼬的 mongodb 连接超时

[英]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 实例的数据库。 连接方式有什么变化吗?

不久前我遇到了这个问题。 这完全取决于您使用的是哪个版本的mongoosemongodb-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,
})

socketTimeoutMSconnectionTimeout仅在useUnifiedTopology设置为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM