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

Comment vérifier si la connexion MongoDB est active dans Node.js

Vous pouvez utiliser l'événement pour le gérer en tant que rappel.
Et peut-être avoir votre variable globale qui identifiera qu'il n'est pas connecté.

Vous pouvez avoir db.js séparé fichier, qui se comportera comme un module. Et vous pouvez avoir une fonction pour en obtenir la collecte.

var mongodb = require('mongodb');
var client;
var collections = { };

new mongodb.Db( ... ).open((function (err, c) {
  if (!err) {
    client = c;
    client.on('close', function() {
      client = null; // clear client
      collections = { }; // clear old collections
      // connection closed
    });
  } else {
    // error connecting
  }
});

// get collection
exports.get = function(name, callback) {
  if (client) {
    if (!collections[name]) {
      collections[name] = new mongodb.Collection(client, name);
    }
    callback(null, collections[name]);
  } else {
    // can perform reconnecting and then get collection and call callback
    callback(new Error('not connected'));
  }
}

Alors pour l'utiliser :

var db = require('./db.js');

db.get('users', function(err, collection) {
  if (!err) {
    collection.find({ ...
  } else {
    console.log(err);
  }
});

Désolé, je viens de remarquer que vous utilisez Mongoose, qui peut être légèrement différent.