TER*_*Mtm 4 javascript node.js
我正在编写一个节点应用程序,它需要在createServer()回调的连接迭代中记住数据。有没有一种不涉及数据库或文件 r/w 的简单方法?到目前为止,我已经尝试在相应的模块甚至主脚本中创建对象,同时将它们传递给各种响应处理程序,但是对于每个连接,它们都会被刷新。
我的意思是:
require('http').createServer(function(req,res){
route(req,res,object);
}).listen(cp=80);
object={variable:0}
function route(req,res,object){
res.end();
console.log(object.variable);
object.variable=Math.floor(Math.random()*100);
}
Run Code Online (Sandbox Code Playgroud)
console.log0在这种情况下,它毫不奇怪地抛出每个连接。有什么方法可以创建全局变量,不是在跨模块可用的意义上,而是在持久性不同于var's 的意义上?
Node 中的每个模块都有自己的作用域,所以不,var Foo;不会创建全局变量 Foo。使用global模块内部的对象。
更新:
require('http').createServer(function(req,res){
route(req,res,object);
}).listen(cp=8080);
object={variable:0}
global.foo = 'Bar'; // I added this
function route(req,res,object){
res.end();
console.log(object.variable);
console.log("foo = %s", global.foo); // I added this too
object.variable=Math.floor(Math.random()*100);
}
Run Code Online (Sandbox Code Playgroud)
它也按预期记录“foo = Bar”。