在多个类之间共享实例化变量的最佳方法?

时间:2016-04-02 17:19:45

标签: javascript node.js ecmascript-6 mean-stack rethinkdb

我目前正在编写一个node.js项目,我在其中定义并实例化了主ES6类中的rethinkdb变量。

我的问题是,在不重新实例化相同变量或进行另一个数据库连接的情况下,在所有后续项目类中共享数据库变量的最佳方法是什么? A" Global"这样的变数。

这样的事情唯一的方法?无论如何将其定义为全局?

const db = require('rethinkdb');
db.connect({
                        host: config.db.host,
                        port: config.db.port,
                        authKey: config.db.authkey,
                        ssl: {
                            ca: content
                        }
                    }, function(err, conn) {
                        if(err) {
                            fail(err)
                        } else {
                            success(conn)
                        }


                       });

new ClassName(db);

编辑:

我还可以考虑创建一个db类,其中db变量是一个单例?这是最好的方式吗?

1 个答案:

答案 0 :(得分:0)

您可以使用module.exports,因此您的db变量必须是该对象。

module.exports = {
    db: require("rethinkdb")
}
module.exports.db.connect(...);

到现在为止,我忘了module.exports是否有require每次需要模块时运行的内置函数,但这样它应该可以正常工作。