繁体   English   中英

如何使用 ES6 跨 NodeJS 模块正确重用 MongoDriver 连接

[英]How to properly reuse MongoDriver connection across NodeJS modules with ES6

首先,这是一个类似的问题,例如如何在 NodeJs 应用程序和模块中正确重用与 Mongodb 的连接,但我想由于 ES6 语法,它仍然不同。

所以我决定使用 MongoDriver 并为此创建了一个 class ,就像在 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 ,所以我必须在每个 function 中调用我的吸气剂。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM