Node.js从不同的文件修改variables

我在Node.js中是新的,我想知道一些事情。 我使用express和socket.io。 有一些价值应该是可以改变的,比方说这个具有布尔typesvariables的“标志” – 这是默认的'false'

但有些时候,特别是当我点击一些button,这将改为'true' 。 express和socket.io工作stream程是好的,但是我不知道如何修改不同文件中的variables而不是复制它。

请看下面的代码来理解

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是一个引用types,与原始的stringbooleantypes相比。

你可以定义一个全局variables并且访问是或者改变它在任何你想要的地方。

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;