可以做到这一点吗
你是php转过来的吧
@captainblue2013 不是啊,为什么这么说
haha,前几天我也在想…
- 可以挂req上面,如果是express
- 存redis里面
@jj0920 没有,你可以把变量放到 req / res 上面。
3,闭包一下 也行
请参考这个: http://www.slideshare.net/isharabash/cls-and-asynclistener 或者搜Continuation-local-storage
diao 自豪地采用 CNodeJS ionic
@jj0920 我也想过,有且只有一种不是办法的办法,就是值传递。。。。
用domain吧. express里加个domain middleware, 然后后续的处理方法里, 就可以用process.domain.xxx来获取/设置针对这个请求的"全局变量". 只是node4已经把domain标记为deprecated, 虽然我还是不会放弃它
@Oppaa 挂req上面是固然可以的,但是那样岂不是会导致持久层和路由耦合吗 存redis里如何设置key呢?
http.Server(function listener(function(req, res) {
//all objects should be in listener scope
}));
用一个middleware,将该变量注入进req。
var middleware = function(req, res,next){
req.var1 = your_var;
next();
};
@wyTrivail 我需要在持久层获取这个变量,如果沿途一直传递req对象是不合理的
req,res这两个变量是贯穿整个请求的,而且可以传递给中间件。把你的值挂载这两个变量里。
@jj0920 这个变量是一个什么样的变量,这个变量是如何生成的呢,是否每个请求对应的这个变量都是不一样的?