MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

NodeJS - MongoDB:gunakan koneksi pembuka

Saat Anda require('somemodule') dan kemudian memintanya lagi untuk kedua kalinya, itu akan menggunakan instance SUDAH dimuat. Ini memungkinkan Anda membuat lajang dengan cukup mudah.

Jadi - di dalam 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;

Kemudian di dalam 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);
  })
}

Dan di dalam b.js :

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

Idenya adalah ketika keduanya a.js dan b.js panggil getMongoCollection , pertama kali akan terhubung, dan kedua kalinya akan mengembalikan yang sudah terhubung. Dengan cara ini memastikan Anda menggunakan koneksi (soket) yang sama.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Set Replika MongoDB dengan Arbiter

  2. Meteor Mongo findOne mengembalikan metode yang tidak ditentukan

  3. Model luwak TypeError:Skema bukan konstruktor

  4. MongoDb membuat serialisasi tipe generik (kelas)

  5. Bagaimana cara menghapus dokumen dari beberapa koleksi berdasarkan ID di MongoDB?