sql >> データベース >  >> NoSQL >> MongoDB

node.jsおよびmongoとのシングルトン接続のセットアップ

    これがシングルトンで非同期待機を使用するものです。私の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();
    

    そして、同じ接続を使用するすべてのモジュールで

    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がenvを探していますredisurl変数env変数をどこに置くべきかわからない不正なURI(URIではありませんか?):( URI ::InvalidURIError)

    2. Apache HBase I / O – HFile

    3. MongoDBでのaggregate($ match)とfindの違いは?

    4. mongodbの配列要素を削除する方法は?