我有一些文件需要访问数据库,所以我有一个这样的文件:
...
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
实例。