用Q承诺处理数据库断开连接

我正在构build一个使用Q promise与MongoDb进行MongoDbnode.js应用程序。 我试图让它更容错 – 所以,如果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服务器在连接诺言完成后closures – 它从来没有进入catch语句。 即使再增加一个接口来进一步保证没有断开连接的错误

有什么build议吗?