关于node.js/javascript在文件之间共享变量



我有一些文件需要访问数据库,所以我有一个这样的文件:

...
var dynamo = new AWS.DynamoDB.DocumentClient();
module.exports.getDatabase= function(){
    return dynamo;
};
...

我想知道不同的.js文件是否像这样使用它:

var DataUtil = require('./shared/dataUtils.js');
...
var database = DataUtil.getDatabase();
....

他们使用的是同一个对象实例吗?或者只是使用required?

是的,它是同一个实例。当您需要一个模块时,只有在尚未加载时才会加载它。因此,节点程序中只有一个模块实例。

来自文件:

模块在第一次加载后被缓存。这意味着(除其他外)每个需要('o')的电话都会得到完全相同的对象返回,如果它将解析为文件

在您的情况下,您将只有一个AWS.DynamoDB.DocumentClient实例。

最新更新