使用Express在多个模块中共享mongoDB实例

时间:2017-11-15 13:15:22

标签: node.js express

我新来表达。现在我正在进行mongodb连接和CRUD活动。我在connection.js中创建了一个连接。我在app.js中获取数据库实例。我需要共享寄存器,登录和其他一些模块的相同数据库实例,而无需再次调用这些模块中的connection.js。或者我需要正确的答案来重新使用快递中的多个模块中的连接。

先谢谢,

1 个答案:

答案 0 :(得分:0)

您可以像这样设置数据库模块:

// db.js

let _db;

module.exports = {
    getDb,
    initDb
};

function initDb(callback) {
    //connect to db and set _db to the new connection.
}

function getDb() {
    assert.ok(_db, "Db has not been initialized. Please called init first.");
    return _db;
}

然后在您的应用初始化的某处,您可以执行以下操作:

// app.js

const dbmodule = require("./db.js");
initDb(function(err){
    // more app init;
});

然后在你的其他模块中,比如login.js,执行:

// login.js

const dmModule = require("./db")
const db = dbModule.getDb() //at this point the db should have been initialized.