我有一些需要数据库访问的文件,所以我有一个这样的文件:
...
var dynamo = new AWS.DynamoDB.DocumentClient();
module.exports.getDatabase= function(){
return dynamo;
};
...
我想知道不同的.js文件是否像这样使用它:
var DataUtil = require('./shared/dataUtils.js');
...
var database = DataUtil.getDatabase();
....
他们是否使用相同的对象实例?或者只是使用require?
为每个.js文件实例化一个副本答案 0 :(得分:2)
是的,它是同一个实例。当您需要一个模块时,它仅在尚未加载时加载。因此,节点程序中只有一个模块实例。
模块在第一次加载后进行缓存。这意味着 (除此之外)每次调用require('foo')都会得到 返回完全相同的对象,如果它将解析为相同 文件。
在您的情况下,您只有一个AWS.DynamoDB.DocumentClient
实例。