Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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/javascript在文件之间共享变量_Javascript_Node.js - Fatal编程技术网

关于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
实例