Express.js req.sessionvariables不通过不同的路由存储会话variables

无法req.session variable 。 我将req.session.username设置为someVariable但是我没有定义。 下面的Express设置是否允许我访问每个路由中的req.sessionvariables?

 app = express.createServer( express.logger(), express.cookieParser(), express.session({ secret: 'keyboard cat' }) ) 

快递网站似乎用这种方式。

编辑:

以下是我使用的一些其他代码:

 if(result[0] != undefined && result[0].Password == req.body.user.pass){ console.log("login successfull"); //Setting in the cookies some variable useful later req.session.userAuthenticated = true; req.session.username = result[0].Username; req.session.projects = result[0].Projects; 

这是/login路线的一部分。 在这部分我检查用户是否正确地input了密码,并且是否已经注册。 如果我做一个console.log(req.session.username)我得到login用户的正确用户名。

在另一个路由中,像这样调用它/wathever我检查一个数据库

 if(projects[i].name == projectName && projects[i].username == req.session.username){ 

projectName是我从用户接收作为POST东西,它的工作原理,它有正确的内容,但如果我检查req.session.username我收到undefined 。 看来会话variables不包含我在之前的路线里面放的东西…

谢谢

确保result[0].Username && result[0].Projects 。项目不是未定义的。

另外你的代码还有另一个问题,你不检查req.body.userreq.body.user.pass是否是未定义的。 例如,我可以用params“test = ok”向你的站点发送一个post请求,所以没有这些variables,它会显示一个Internal Error页面。