nodejs:MongoDB驱动程序重新连接

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

我已经做了一个简单的脚本来testing它。

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。

任何想法如何解决这个问题?