sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan kontrollerer du, om MongoDB-forbindelsen er i live i Node.js

Du kan bruge hændelse til at håndtere det som tilbagekald.
Og måske have din globale variabel, der vil identificere, at den ikke er forbundet.

Du kan have separate db.js fil, der opfører sig som modul. Og du kan have funktion til at få afhentning fra det.

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

Så for at bruge det:

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

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

Beklager, har lige bemærket, at du bruger Mongoose, som kan være lidt anderledes.




  1. grupper efter forespørgsler om meteorindsamling

  2. Mongo ObjectID'er er ikke lig med hinanden

  3. Sådan får du adgang til oplog MongoDB (MMS replika sæt)

  4. MongoDB - formørkelse