Node.js nodejs:MongoDB驱动程序重新连接

Node.js nodejs:MongoDB驱动程序重新连接,node.js,mongodb,Node.js,Mongodb,MongoDb驱动程序有时不会自动重新连接。我的应用程序只是停止工作,因为驱动程序没有重新连接。如果我重新启动应用程序,它会正常工作 我制作了一个simples脚本来测试它 const mongodb = require('mongodb'); const MongoClient = mongodb.MongoClient; function randomIndex() { return Math.ceil(Math.random() * 2100); } MongoClient.con

MongoDb驱动程序有时不会自动重新连接。我的应用程序只是停止工作,因为驱动程序没有重新连接。如果我重新启动应用程序,它会正常工作

我制作了一个simples脚本来测试它

const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;

function randomIndex() {
  return Math.ceil(Math.random() * 2100);
}

MongoClient.connect('mongodb://localhost/somedb').then(db => {
  let collection = db.collection('somecollection');
  db.on('close', err => console.log('close', err));
  db.on('reconnect', () => console.trace('reconnect'));

  setInterval(() => {
    collection.find({
      index: randomIndex()
    }).limit(1).next()
      .then(console.log)
      .catch(console.log);
  }, 1000);
});
重现错误的步骤:

  • 启动mongodb
  • 开始脚本
  • 停止mongodb
  • 重启mongodb
  • 停止mongodb
  • 重启mongodb
第二次重新启动后,在节点上运行的应用程序不会重新连接到mongo


关于如何解决这个问题,有什么想法吗?

我想我已经找到了解决方案,并提出了拉取请求