我正在构建一个使用node.js
承诺与MongoDb
对话的Q
应用。我试图让它更容错 - 所以如果MongoDb服务器发生故障 - 我的应用程序检测到它并尝试重新连接
连接初始化为
this.db = Q.nfcall(Mongodb.connect.bind(Mongodb), config.mongoServer).catch(function(){
console.log('could not connect..');
});
然后偶尔读取或写入将this.db
承诺链接到
this.db
.then(function(db) {
var collection = db.collection(pair);
return Q.nfcall(collection.mapReduce.bind(collection), map, reduce, { out: { inline: 1 }, query: query });
});
如果MongoDb服务器在完成连接承诺后关闭 - 它永远不会进入catch
子句。即使我添加另一个catch
进一步承诺也没有断线错误
有什么建议吗?