如何设置 MongoClient 连接超时?

Ser*_*rov 8 javascript mongodb

我有一个服务器,它首先连接到 MongoDB 实例,然后启动 Web 服务器。如果 MongoDB 实例不可用,则没有必要启动 Web 服务器,所以我想我需要以某种方式将超时设置为 5 秒。

我该怎么做?

这是我的代码:

MongoClient.connect(Config.database.url).then((db) => {
        console.log('Connected to MongoDB');
        databaseInstance = db;
       // start web server
    })
Run Code Online (Sandbox Code Playgroud)

Ric*_*yce 5

  • 要定义初始连接使用的超时时间serverSelectionTimeoutMS
  • 定义正在进行的连接的超时时间connectTimeoutMS

MongoDB 3.6 连接示例:

const client = new MongoClient(Config.database.url, {
  connectTimeoutMS: 5000,
  serverSelectionTimeoutMS: 5000
})

client.connect(err => {
  console.log('Connected to MongoDB')
  // ..
})
Run Code Online (Sandbox Code Playgroud)

查看官方文档serverSelectionTimeoutMS


tan*_*din 4

你可以像这样使用“connectTimeoutMS”

MongoClient.connect(Config.database.url, {
    server: {
        socketOptions: {
            connectTimeoutMS: 5000
        }
    }
}).then((db) => {
    console.log('Connected to MongoDB');
    databaseInstance = db;
   // start web server
})
Run Code Online (Sandbox Code Playgroud)

这是有关它的更多信息...

http://mongodb.github.io/node-mongodb-native/2.0/reference/connecting/connection-settings/ https://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html