【问题标题】:How to properly reuse MongoDriver connection across NodeJS modules with ES6如何使用 ES6 跨 NodeJS 模块正确重用 MongoDriver 连接
【发布时间】:2021-04-09 15:25:31
【问题描述】:

首先这是一个类似How to properly reuse connection to Mongodb across NodeJs application and modules 的问题,但我想由于 ES6 语法,它仍然不同。

所以我决定使用 MongoDriver 并为此创建了一个类,如 SO 答案:dbconnections.js

import { default as mongodb } from 'mongodb';
const MongoClient = mongodb.MongoClient;
const url = "myurl"
let _db;

export const connectToServer = async (callback) => {
    try {
        MongoClient.connect( url,  { useNewUrlParser: true, useUnifiedTopology:true }, ( err, db ) => {
            _db  = db
            return callback( err )
        })
    } catch (e) {
        throw e
    }
}  
      
export const getDB = () => _db

export const disconnectDB = () => _db.close()

这个模块的问题是,由于 ES6 语法,我无法制作这样的东西

import {getDB} from '../dbconnections.js'
const driverDB=getDB()

export const someFunction= async (req,res) => {
    console.log(driverDB)

因为我总是得到undefiened,所以我必须在每个函数中调用我的getter。

所以我的问题是:如何为 MongoDriver 处理程序正确创建一个结构并将其传递给 ES6 的不同模块?

【问题讨论】:

    标签: javascript node.js mongodb ecmascript-6


    【解决方案1】:

    将客户端对象传递给需要它的对象和函数。

    https://en.wikipedia.org/wiki/Dependency_injection

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 2021-12-08
      • 2018-10-27
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      相关资源
      最近更新 更多