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

Konfigurowanie połączenia singleton z node.js i mongo

Oto, co używa asynchronicznego oczekiwania na singleton. W moim db.js

var MongoClient = require('mongodb').MongoClient;

var DbConnection = function () {

    var db = null;
    var instance = 0;

    async function DbConnect() {
        try {
            let url = 'mongodb://myurl.blablabla';
            let _db = await MongoClient.connect(url);

            return _db
        } catch (e) {
            return e;
        }
    }

   async function Get() {
        try {
            instance++;     // this is just to count how many times our singleton is called.
            console.log(`DbConnection called ${instance} times`);

            if (db != null) {
                console.log(`db connection is already alive`);
                return db;
            } else {
                console.log(`getting new db connection`);
                db = await DbConnect();
                return db; 
            }
        } catch (e) {
            return e;
        }
    }

    return {
        Get: Get
    }
}


module.exports = DbConnection();

I we wszystkich modułach, które będą korzystać z tego samego połączenia

var DbConnection = require('./db');

async function insert(data) {
    try {
        let db = await DbConnection.Get();
        let result = await db.collection('mycollection').insert(data);

        return result;
    } catch (e) {
        return e;
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Masowe wstawianie mongodb w Meteor lub Node

  2. Definiowanie schematu Mongoose na bieżąco z „opisu” w formacie JSON

  3. Sprawdź, czy istnieje baza danych mongodb?

  4. Uzyskanie najwyższej wartości kolumny w MongoDB

  5. Czy powinienem przechowywać tokeny JWT w redis?