Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Node.js中是否有更好的方法来构造全局变量?_Node.js - Fatal编程技术网

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

在Node.js中是否有更好的方法来构造全局变量?,node.js,Node.js,试图了解构造某些变量的最佳方式。例如,在我的Node.js Express应用程序中,app.js中有以下内容: var poolModule = require('generic-pool'); global.pools = { /* ... */ }; 其中,pools是我的全局变量,用于跟踪MySQL和Redis池。我还想知道我是否可以对实际的Redis和MySQL对象(可能还有配置变量)做同样的操作,这样我就不必在整个应用程序中都需要它们了。因为它们将被最多地使用 这是一种不好的做法

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

var poolModule = require('generic-pool');
global.pools = {
 /* ... */
};
其中,
pools
是我的全局变量,用于跟踪MySQL和Redis池。我还想知道我是否可以对实际的Redis和MySQL对象(可能还有配置变量)做同样的操作,这样我就不必在整个应用程序中都需要它们了。因为它们将被最多地使用

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


编辑:添加了
全局。

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

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

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

谢谢你的解释,我想我现在明白了!