MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Option de reconnexion automatique de Mongoose

J'avais la même question que vous, et la solution de robertklep n'a pas fonctionné pour moi non plus. J'ai trouvé lorsque le service MongoDB est arrêté, un événement d'erreur est déclenché, mais le connection.readyState est toujours 1 (connecté). C'est peut-être pour cette raison qu'il ne s'est pas reconnecté automatiquement.

Voici ce que j'ai maintenant :

  var db = mongoose.connection;

  db.on('connecting', function() {
    console.log('connecting to MongoDB...');
  });

  db.on('error', function(error) {
    console.error('Error in MongoDb connection: ' + error);
    mongoose.disconnect();
  });
  db.on('connected', function() {
    console.log('MongoDB connected!');
  });
  db.once('open', function() {
    console.log('MongoDB connection opened!');
  });
  db.on('reconnected', function () {
    console.log('MongoDB reconnected!');
  });
  db.on('disconnected', function() {
    console.log('MongoDB disconnected!');
    mongoose.connect(dbURI, {server:{auto_reconnect:true}});
  });
  mongoose.connect(dbURI, {server:{auto_reconnect:true}});