我在Nodejs中使用3個文件。 File1.js1 has a
counter = 11和getter() setter()
。 File2.js
將該值設置爲counter=10
。但是當我在File3.js
中檢索計數器的值時,我可以將舊值1,而不是由File2
設置的值。節點變量得到重置
//=====File1.js=====
var store = module.exports = {
counter: 1,
getCounter: function() {
return store.counter;
},
setCounter: function (value) {
store.counter = value;
}
}
//=====File2.js=====
var c = require('./File1');
c.setCounter(10);
console.log(c.getCounter()) //prints 10
//=====File3.js=====
var c = require('./File1');
console.log(c.getCounter()) //prints 1
這似乎是一個簡單的概念unfaltered。我認爲問題在這裏,我不知道如何解決它。
File1和File2在Node-service-1上運行(可在http://localhost:1000處運行)並且File3在Node-service-2上運行(在http://localhost:1100處可用)。
在典型的場景中,多個用戶訪問Node-service-1和Node-service-2,只有第一個用戶獲得1000個可用。我使用portfinder
包獲取下一個可用端口,並在1001上爲User2運行Node-service-1。但Node-service-2不知道User2在端口1001上運行服務,並且錯誤地嘗試獲取1000(對於User2 )並失敗。
所以問題是Node-service-2如何知道Node-service-1運行的端口?
我也相信套接字連接,我需要知道節點服務1運行的端口。那是對的嗎 ? – mehtak
那麼,您需要在一個節點實例上實現套接字偵聽器,然後讓另一個實例上的代碼連接到正確的端口號。研究可用於節點實例之間通信的不同選項並選擇最符合您需要的現有解決方案可能更有意義。 –
謝謝@Julian Goacher我會進一步研究它。 – mehtak