[英]How to get dynamic value of a variable declared in another file in NodeJS
在 app.js 文件中:
const tempStore = require("./tempStore.js");
setInterval(() => {
tempStore.setTemp(1);
console.log(tempStore.temp); // I expect this will log 1 then 2 then 3 so on...
}, 1000);
在 tempStore.js 文件中:
let temp = 0;
const setTemp = num => {
temp += num;
}
module.exports = {
temp: temp,
setTemp: setTemp
}
我希望這條線console.log(tempStore.temp);
會給我一個不斷增加的數字序列:
1
2
3
4
...
...
但它給了我這個:
0
0
0
0
..
..
換句話說,總是0
。
我可以通過修改此代碼找到另一種方法來獲得我的期望:
在 app.js 文件中:
const number = tempStore.setTemp(1); // store returned value in a constant
console.log(number); // show it
在 tempStore.js 文件中:
temp += num;
return temp; // return the result
但我更喜歡直接從temp
獲取號碼,為什么不能這樣做?
據我記得,我可以在編寫前端開發 between.js 文件時做到這一點。 但是為什么我不能在 NodeJS 中做到這一點,這是怎么回事?
嘗試這樣的事情:
const store = {
temp: temp,
setTemp: setTemp
}
function setTemp(num) {
store.temp += num;
}
module.exports = store;
您當前方法的問題是,在創建 object 時,導出對象的temp
屬性設置為temp
的值,並且由於在setTemp
function 內部,您所做的唯一更改是重新分配temp
,導出的 ZA8CFDE6331BD59EB626ZF8 不會變為 mutatedDC4。
與此相同:
let temp = 0; const setTemp = num => { temp += num; } const store = { temp: temp, setTemp: setTemp } console.log("default", store.temp); setTemp(10); console.log("after change", store.temp);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.