使用Q Promises处理数据库断开连接

时间:2014-01-24 12:04:09

标签: node.js mongodb q

我正在构建一个使用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进一步承诺也没有断线错误

有什么建议吗?

0 个答案:

没有答案