簡體   English   中英

如何獲取在 NodeJS 的另一個文件中聲明的變量的動態值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM