繁体   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