繁体   English   中英

Node.js修改不同文件中的变量

[英]Node.js Modifying variable from different file

我是Node.js的新手,我想知道一些事情。 我使用express和socket.io。 有一些值应该是可更改的,让我们说这个'flag'有布尔类型变量 - 默认情况下这是'false'

但有些时候尤其是当我点击某个按钮时,它会变为'true' express和socket.io工作流很好,但我不知道如何修改不同文件中的变量而不仅仅是复制它。

请参阅以下代码以了解

Main.js

var flag = false;
exports.flag = flag; 

// display flag every second
setInterval((function(){console.log(flag)}), 1000);

remote.js中

// I want to change 'original flag' at main.js in remote.js 
// How can I do that? I think below is just copying it, so doesn't effect to main.js

flag = require('/Main').flag;

// the flag will be 'true' after some moment
flag = true;

我想在main.js中得到的预期结果

false
false
false
...
true
true

我怎样才能做到这一点?

您是否尝试使用包含的对象而不是属性?

这样你就可以保持对象的引用而不是原始值。

main = require('/Main');

main.flag = true;

编辑:如Mike C的评论中所述,您还需要使用setInterval中的对象

setInterval((function(){console.log(exports.flag)}), 1000);

它的工作原理是因为Object是一个引用类型,与原始的stringboolean相比。

您可以定义全局变量,并在任何地方访问或更改它。

main.js

global.flag = false; 

// display flag every second
setInterval((function(){console.log(global.flag)}), 1000);

remote.js中

// the flag will be 'true' after some moment
global.flag = true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM