1
keys OP 问题解决了,在if(req.session.user){req.session.user = req.session.user;......}就可以了,但是一个变量自己等于自身很奇怪,我的理解是浏览器打开一个网址会生成一个request,如果是A redirect 到B,则callback(req,res){....}里的req来自A,res,end()之后生成的新网页含有新的req,这时刷新是B to B,而B的req里面就不存在req.session.user了,而在callback(){ req.session.user = ....;}里面这样设置的req会包含在新的网页里面,所以,问题就解决了;简单的想想就是说在callback函数里面有两个req,一个属于传进来的,一个属于新页面,当你进行修改req的属性的时候,传进来的req是只读的,所以默认为修改新页面的req,而新页面的req用于新页面跳转时进行传递。
以上是我的分析,纯粹根据结果逆向推理而得,望高手居高临下剖析原理,提出不足 |
2
jackyz 2012-10-26 16:59:38 +08:00
嗯嗯,多啃啃 expressjs.com 就明白了。
|
3
meteor 2012-11-07 10:50:24 +08:00
|