当我更新我的节点js对象时,它不会在所有需要它的类中更新。
我有像这样的availableResources.js模块
module.exports = {}
在我的resources.server.js中,我有一个像这样的初始化函数
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可用资源时,我看到添加的资源具有正确的属性名称。但是当我在添加资源后在processor.server.js中控制console.log可用资源时,我仍然看到一个空对象。
当我在一个类中更新它时,如何按预期共享此对象?
答案 0 :(得分:0)
因此,当您require('./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语句。