有人可以举例说明如何将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);
});
我希望'toArray'中的回调可以基于connectTimeoutMS
属性执行。为什么不叫它?
如果connectTimeoutMS
用于其他内容,当我将其设置为不同的值时,如何看到不同的效果。
答案 0 :(得分:1)
请记住connectTimeoutMS
和socketTimeoutMS
之间的区别。来自Node.js driver docs,
connectTimeoutMS = ms:在超时之前可以打开连接多长时间。 当前的驱动程序行为已经有所不同,因此默认情况下必须留给每个驱动程序。对于新实现,默认值应该是永不超时。
socketTimeoutMS = ms:在超时之前,套接字上的发送或接收可以花多长时间。 当前的驱动程序行为已经有所不同,因此默认情况下必须留给每个驱动程序。对于新实现,默认值应该是永不超时。