关于node.js/javascript在文件之间共享变量
我有一些需要访问数据库的文件,因此我有一个如下文件:关于node.js/javascript在文件之间共享变量,javascript,node.js,Javascript,Node.js,我有一些需要访问数据库的文件,因此我有一个如下文件: ... var dynamo = new AWS.DynamoDB.DocumentClient(); module.exports.getDatabase= function(){ return dynamo; }; ... var DataUtil = require('./shared/dataUtils.js'); ... var database = DataUtil.getDatabase(); .... 我想知道不
...
var dynamo = new AWS.DynamoDB.DocumentClient();
module.exports.getDatabase= function(){
return dynamo;
};
...
var DataUtil = require('./shared/dataUtils.js');
...
var database = DataUtil.getDatabase();
....
我想知道不同的.js文件是否会这样使用它:
...
var dynamo = new AWS.DynamoDB.DocumentClient();
module.exports.getDatabase= function(){
return dynamo;
};
...
var DataUtil = require('./shared/dataUtils.js');
...
var database = DataUtil.getDatabase();
....
它们是否使用相同的对象实例?或者只是使用所需的?是的,它是同一个实例为每个.js文件实例化一个副本。当您需要一个模块时,它只会在尚未加载时加载。所以节点程序中只有一个模块实例 发件人: 模块在第一次加载后被缓存。这意味着 (除其他事项外)每个对require(“foo”)的调用都将得到 返回的对象完全相同,如果它将解析为相同的 文件
在您的示例中,只有一个
AWS.DynamoDB.DocumentClient的实例
是的,它是同一个实例。当您需要一个模块时,它只会在尚未加载时加载。所以节点程序中只有一个模块实例
发件人:
模块在第一次加载后被缓存。这意味着
(除其他事项外)每个对require(“foo”)的调用都将得到
返回的对象完全相同,如果它将解析为相同的
文件
在本例中,您将只有一个AWS.DynamoDB.DocumentClient
实例