1

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

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

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

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

编辑:添加global.

4

2 回答 2

1

如果你需要一个文件,你实际上总是需要同一个对象。这意味着你可以这样做:

module.exports = {
  // same object for everybody that requires me
};
于 2012-11-11T23:53:50.520 回答
1

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

于 2012-11-12T00:28:55.640 回答