MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

NodeJS - MongoDB:użyj połączenia otwierającego

Kiedy require('somemodule') a następnie ponownie wymagać tego po raz drugi, użyje już załadowanej instancji. Pozwala to na łatwe tworzenie singli.

A więc - wewnątrz sharedmongo.js :

var mongo = require('mongodb');

// this variable will be used to hold the singleton connection
var mongoCollection = null;

var getMongoConnection = function(readyCallback) {

  if (mongoCollection) {
    readyCallback(null, mongoCollection);
    return;
  }

  // get the connection
  var server = new mongo.Server('127.0.0.1', 27017, {
    auto_reconnect: true
  });

  // get a handle on the database
  var db = new mongo.Db('squares', server);
  db.open(function(error, databaseConnection) {
    databaseConnection.createCollection('testCollection', function(error, collection) {

      if (!error) {
        mongoCollection = collection;
      }

      // now we have a connection
      if (readyCallback) readyCallback(error, mongoCollection);
    });
  });
};
module.exports = getMongoConnection;

Następnie wewnątrz a.js :

var getMongoConnection = require('./sharedmongo.js');
var b = require('./b.js');
module.exports = function (req, res) {
  getMongoConnection(function(error, connection){
    // you can use the Mongo connection inside of a here
    // pass control to b - you don't need to pass the mongo
    b(req, res);
  })
}

I wewnątrz b.js :

var getMongoConnection = require('./sharedmongo.js');
module.exports = function (req, res) {
  getMongoConnection(function(error, connection){
    // do something else here
  })
}

Pomysł polega na tym, że oba a.js i b.js zadzwoń do getMongoCollection , za pierwszym razem połączy się, a za drugim razem zwróci już podłączony. W ten sposób zapewnia, że ​​używasz tego samego połączenia (gniazda).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Znajdź nazwę kolekcji z document._id w meteor (mongodb)

  2. MongoDB:Wymuś typ danych pól?

  3. Grupuj odrębne wartości i liczby dla każdej właściwości w jednym zapytaniu

  4. Meteor:unikalny adres URL MongoDB dla różnych użytkowników

  5. Jak skrócić liczbę do 3 miejsc po przecinku