Node.js 跨应用程序更新后清空共享节点对象

Node.js 跨应用程序更新后清空共享节点对象,node.js,Node.js,当我更新节点js对象时,它不会在所有需要它的类中更新 我有这样的可用资源.js模块 module.exports = {} 在我的resources.server.js中,我有这样一个init函数 var AvailableResources = require("./availableResources.js"); var newResource = { name : 'resource1', type : 'video' } AvailableResourc

当我更新节点js对象时,它不会在所有需要它的类中更新

我有这样的可用资源.js模块

module.exports = {}
在我的resources.server.js中,我有这样一个init函数

var AvailableResources = require("./availableResources.js");

var newResource = {
    name    : 'resource1',
    type    : 'video'
}

AvailableResources[newResource.name] = newResource;
console.log("AvailableResources", AvailableResources);
在另一个名为processor.server.js的文件中,我像这样使用这个资源

var AvailableResources = require("./availableResources.js");

function activateResource(resourceName){
    console.log("AvailableResources", AvailableResources);
    AvailableResources[resourceName].activate();
}
在我的resources.server.js中输入console.log available resources时,我看到添加的资源具有正确的属性名称。但在添加资源后,当我在processor.server.js中输入console.log available resources时,仍然会看到一个空对象

当我在一个类中更新该对象时,如何按预期共享该对象?

因此,当您
要求('./availableResources.js')
将任何导出从该文件导入到新位置时。您可以随意更改和操作新文件中的数据,并且它不会对要导出的原始对象进行任何更改

如果希望
resources.server.js
中的操作结果受
processor.server.js
中的函数调用的影响,则必须执行以下操作:

使用新数据更新对象后,将
module.exports=AvailableResources
添加到resources.server.js文件中。并将processor.server.js中的require语句更改为
AvailableResources=require('./resources.server.js')

如果您试图在加载某些内容后确定某个操作的时间,那么您可能应该查看
Promise()
,而不是链式require语句