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,与原始的string
或boolean
types相比。
你可以定义一个全局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;