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

Jak prawidłowo ponownie wykorzystać połączenie z Mongodb w aplikacjach i modułach NodeJs?

Możesz utworzyć mongoUtil.js moduł, który ma funkcje zarówno do łączenia się z mongo, jak i do zwracania instancji 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;
  }
};

Aby go użyć, zrób to w swoim app.js :

var mongoUtil = require( 'mongoUtil' );

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

A potem, gdy potrzebujesz dostępu do mongo gdzie indziej, jak w innym .js plik, możesz to zrobić:

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

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

Powodem, dla którego to działa, jest to, że w węźle, gdy moduły są require cóż, są one ładowane/pozyskiwane tylko raz, więc zawsze będziesz mieć tylko jedną instancję _db i mongoUtil.getDb() zawsze zwróci tę samą instancję.

Uwaga, kod nie został przetestowany.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Filtrowanie osadzonych dokumentów w MongoDB

  2. Jak znaleźć dokumenty spełniające wiele kryteriów

  3. Mongoose wybierz pola do powrotu z findOneAndUpdate

  4. Klucze dynamiczne po $grupuj według

  5. MongoDB $filtr