为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取在NodeJS中另一个文件中声明的变量的动态值

如何获取在NodeJS中另一个文件中声明的变量的动态值

慕森王 2021-11-25 16:38:55
在 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);会给我一个递增的数字序列:1234......但它给了我这个:0000....换句话说总是0。我可以通过修改此代码找到另一种方法来获得我所期望的:在 app.js 文件中:const number = tempStore.setTemp(1); // store returned value in a constantconsole.log(number); // show it在 tempStore.js 文件中:temp += num;return temp; // return the result但是我更喜欢直接从 中获取号码temp,为什么不能这样做?据我所知,我可以在 .js 文件之间的前端开发中编码时执行此操作。但是为什么我不能在 NodeJS 中做到这一点,怎么了?
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

尝试这样的事情:


const store = {

   temp: temp,

   setTemp: setTemp

}


function setTemp(num) {

   store.temp += num;

}


module.exports = store;

您当前方法的问题在于,导出对象的temp属性设置temp为创建对象时的值,并且由于在setTemp函数内部所做的唯一更改是 reassign temp,因此导出的对象不会发生变异。


是不是和这个一样:


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);


查看完整回答
反对 回复 2021-11-25
  • 1 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信