在多个 类 之间共享实例化变量的最佳方式?
Best way to share an instantiated variable between multiple classes?
我目前正在编写一个 node.js 项目,我在主 ES6 class.
中定义并实例化了一个 rethinkdb 变量
我的问题是在所有后续项目 classes 之间共享数据库变量而不重新实例化相同变量或建立另一个数据库连接的最佳方法是什么?一个"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 class,其中 db 变量是单例?这是最好的方法吗?
您可以使用 module.exports
,因此您的 db 变量必须在该对象中。
module.exports = {
db: require("rethinkdb")
}
module.exports.db.connect(...);
现在我忘记了 module.exports
是否有一个内置函数,每次 require
需要模块时都会运行,但这样应该可以正常工作。
我目前正在编写一个 node.js 项目,我在主 ES6 class.
中定义并实例化了一个 rethinkdb 变量我的问题是在所有后续项目 classes 之间共享数据库变量而不重新实例化相同变量或建立另一个数据库连接的最佳方法是什么?一个"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 class,其中 db 变量是单例?这是最好的方法吗?
您可以使用 module.exports
,因此您的 db 变量必须在该对象中。
module.exports = {
db: require("rethinkdb")
}
module.exports.db.connect(...);
现在我忘记了 module.exports
是否有一个内置函数,每次 require
需要模块时都会运行,但这样应该可以正常工作。