Javascript 如何使用ES6跨NodeJS模块正确重用MongoDriver连接
首先,这是一个类似的问题,但我想由于ES6语法的原因,它仍然是不同的 所以我决定使用MongoDriver,并为此创建了一个类,如So answer:dbconnections.js中所示Javascript 如何使用ES6跨NodeJS模块正确重用MongoDriver连接,javascript,node.js,mongodb,ecmascript-6,Javascript,Node.js,Mongodb,Ecmascript 6,首先,这是一个类似的问题,但我想由于ES6语法的原因,它仍然是不同的 所以我决定使用MongoDriver,并为此创建了一个类,如So answer:dbconnections.js中所示 import { default as mongodb } from 'mongodb'; const MongoClient = mongodb.MongoClient; const url = "myurl" let _db; export const connectToServer
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)
因为我总是得到未定义的,所以我必须在每个函数中调用我的getter
所以我的问题是:如何正确地为MongoDriver处理程序创建一个结构,并使用ES6将其传递给不同的模块?将客户机对象传递给需要它的对象和函数