MongoDb nodejs connectTimeoutMS

时间:2015-04-07 12:08:25

标签: node.js mongodb

有人可以举例说明如何将connectTimeoutMS设置为不同的值会产生不同的结果吗?

应用程序启动:

   var myDB = null;          
   var options = { server: { socketOptions: { connectTimeoutMS: 5000 }}};
                    MongoClient.connect(CONFIG.connectionString,options, function(err, db) {
                        if (err) {
                            throw err;
                        }

                        db.on('error', function(err){
                            console.error('can not establish connection');
                        });

                        myDB = db;

                    });

稍后我停止mongo服务(在Windows上)并执行使用

的代码
myDB.collection('someCollection').find({}).toArray(function(err){
    console.log('never called after stoping mongo service. Shouldnt it call with err argument?',err);
});
  1. 我希望'toArray'中的回调可以基于connectTimeoutMS属性执行。为什么不叫它?

  2. 如果connectTimeoutMS用于其他内容,当我将其设置为不同的值时,如何看到不同的效果。

1 个答案:

答案 0 :(得分:1)

请记住connectTimeoutMSsocketTimeoutMS之间的区别。来自Node.js driver docs

  

connectTimeoutMS = ms:在超时之前可以打开连接多长时间。   当前的驱动程序行为已经有所不同,因此默认情况下必须留给每个驱动程序。对于新实现,默认值应该是永不超时。

     

socketTimeoutMS = ms:在超时之前,套接字上的发送或接收可以花多长时间。   当前的驱动程序行为已经有所不同,因此默认情况下必须留给每个驱动程序。对于新实现,默认值应该是永不超时。