我如何发现与Mongo的连接已重新建立?

时间:2014-09-16 21:53:08

标签: node.js mongodb

我需要在连接和断开连接时发出事件。我的问题是检测何时重新建立连接。

当连接断开连接时(出错时),mongo驱动器会发出um事件,但在重新建立连接时它不会发出事件。

MongoClient.connect(mongoUrl, function (err, db) {
  if (err) {
    console.log('Error on connecting to mongo!');
    console.error(err);

    reconnect();

    return;
  }

  console.log('Mongo connected!');
  emit('connected', db);   // This event is emitted only on the first connection.

  db.on('error', function (err) {
    console.log('Mongo connection broken!');
    console.error(err);
    emit('disconnected');
  });
}

分析代码我发现了serverConfig对象。

db.serverConfig.on('reconnect', function() {
  console.log('DB reconnected');
});

使用这个内部对象是一个好习惯吗?

感谢。

1 个答案:

答案 0 :(得分:0)

根据Mongo驱动程序开发人员的说法,使用db.serverConfig订阅“重新连接”事件是一种很好的做法。

更多细节: Database object emits a 'reconnect' event