sql >> Databasteknik >  >> NoSQL >> MongoDB

NodeJS - MongoDB:använd en öppningsanslutning

När du require('somemodule') och sedan kräva det igen en andra gång, kommer den att använda den redan laddade instansen. Detta låter dig skapa singlar ganska enkelt.

Så - inuti 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;

Sedan inuti 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);
  })
}

Och inuti b.js :

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

Tanken är när både a.js och b.js ring getMongoCollection , första gången kommer den att ansluta och andra gången returnerar den redan anslutna. På så sätt säkerställer du att du använder samma anslutning (socket).




  1. Finns det något sätt att implementera paginering i fjäderwebflux och fjäderdata reaktiv

  2. Vad är fördelen med att använda Gorilla sessions anpassad backend?

  3. Returnera BsonDocument i ApiController

  4. Hur man itererar genom objekt inuti Collection Meteor Mongo