MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как правилно да използвате повторно връзката с Mongodb в приложението и модулите на NodeJs

Можете да създадете mongoUtil.js модул, който има функции както за свързване към mongo, така и за връщане на mongo db екземпляр:

const MongoClient = require( 'mongodb' ).MongoClient;
const url = "mongodb://localhost:27017";

var _db;

module.exports = {

  connectToServer: function( callback ) {
    MongoClient.connect( url,  { useNewUrlParser: true }, function( err, client ) {
      _db  = client.db('test_db');
      return callback( err );
    } );
  },

  getDb: function() {
    return _db;
  }
};

За да го използвате, трябва да направите това във вашия app.js :

var mongoUtil = require( 'mongoUtil' );

mongoUtil.connectToServer( function( err, client ) {
  if (err) console.log(err);
  // start the rest of your app here
} );

И след това, когато имате нужда от достъп до mongo някъде другаде, например в друг .js файл, можете да направите това:

var mongoUtil = require( 'mongoUtil' );
var db = mongoUtil.getDb();

db.collection( 'users' ).find();

Причината това да работи е, че в възел, когато модулите са require 'd, те се зареждат/извличат само веднъж, така че в крайна сметка ще имате само един екземпляр на _db и mongoUtil.getDb() винаги ще връща същия екземпляр.

Забележка, кодът не е тестван.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoDB различен и къде в същата заявка?

  2. Преобразувайте датата от милисекунди в обект ISODate

  3. Как да проектирате индекс на масив след размотаване на масив с MongoDB рамка за агрегиране

  4. Загриженост за записа на MongoDB:3 предупреждения, които трябва да знаете

  5. Mongoose - валидиране на синтаксиса на имейла