sql >> Database >  >> NoSQL >> MongoDB

Hoe te controleren of de MongoDB-verbinding actief is in Node.js

Je kunt event gebruiken om het als callback af te handelen.
En misschien heb je je globale variabele die zal identificeren dat het niet verbonden is.

U kunt afzonderlijke db.js . hebben bestand, dat zich als module zal gedragen. En je kunt een functie hebben om er verzameling van te krijgen.

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'));
  }
}

Dus om het te gebruiken:

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

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

Sorry, ik zie net dat je Mongoose gebruikt, wat enigszins kan verschillen.




  1. Hoe beperkingen toepassen in MongoDB?

  2. Hoe om te gaan met het tijdzoneprobleem bij het opslaan van datums in utc met behulp van mongod?

  3. Een goed hulpmiddel voor het bouwen van een beheerders- / inhoudsbeheerinterface via MongoDB?

  4. Verwijder subvelden uit mongoDb-document