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