有没有更好的方法在Node.js中构造全局变量?

时间:2012-11-11 21:54:00

标签: node.js

试图了解构造某些变量的最佳方法。例如,在我的Node.js Express应用程序中,我在app.js中有以下内容:

var poolModule = require('generic-pool');
global.pools = {
 /* ... */
};

pools是我跟踪MySQL和Redis池的全局变量。我也想知道我是否可以用实际的Redis和MySQL对象(也许是configs变量)做同样的事情,所以我不需要在整个应用程序中要求它们。因为他们将被最多使用。

这是不好的做法,如果是,那么构建这种代码的更好方法是什么?

修改:添加了global.

2 个答案:

答案 0 :(得分:1)

如果您需要文件,实际上您总是需要相同的对象。这意味着你可以做到:

module.exports = {
  // same object for everybody that requires me
};

答案 1 :(得分:1)

您有正确的想法,但是您想使用module.exports将对象导出为模块。 CommonJS方法是在模块中包含局部变量,并导出变量以在模块外部使用。通过这种方式,模块可以互相访问。变量通过使用require。这些变量实际上并不是全球性的,但在某种程度上更像是"朋友" C ++中的类。实际上,您可以让poolModule为您存储变量 - 您可以在其中放置方法和其他功能,并使其在整个应用程序中可重用。