2017-03-05 86 views
0

當我更新我的節點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(); 
} 

當我console.log可用資源在我的資源s.server.js我看到添加的資源具有正確的屬性名稱。但是當我添加資源後在console.log.js中調用console.log可用資源時,仍然看到一個空對象。

當我在一個類中更新它時,如何共享這個對象?

回答

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語句。