this.session.user 没有值
来源:7-3 第七天 兼容PC注册登录和首页(下)
大大的喆
2016-12-14
老师 this.sesion.user 设完值之后 ,页面中还是没有值 下面是我测试session的代码:
app.js中:
//测试 koa-session
//这个地方,因为使用koa-views时,'this.render'一直没有效果,所以我改用了co-views 可以正常的render
var views = require('co-views');
var render = views(path.join(__dirname,'/app/views'), {
default:'jade'
});
app.use(function *(next){
this.session.user = {"name":"ceshi"};
console.log(this.session.user);//这个地方有值:{name:"ceshi"}
this.body = yield render('test', {});
})
//test.jade
doctype html
html
head
meta(charset='utf-8')
title 点击
body
h1 jade ceshi
if user
h2 #{user}
else
h2 session 没有值
结果页面结果为:
再补充一下:
我再测试了一下登录的功能,登录前的cookie值为:
Cookie:koa:sess=eyJ1c2VyIjp7Im5hbWUiOiJjZXNoaSJ9LCJfZXhwaXJlIjoxNDgxNzY1MTM4Mjg3LCJfbWF4QWdlIjo4NjQwMDAwMH0=; koa:sess.sig=mF5mIvxFM-miYrzS7tVddyMWGjE; marking=j0id8v
登录之后,cookie为:
老师,这样是不是说明设置 this.session.user 还是存储成功了?this.redirect()之后,页面中直接这样使用能获取到session的值吗:
if user
//成功获取session的处理
else
//处理
1回答
-
Scott
2016-12-14
不会存储的,redirect 之后,需要重新获取一下之前的 session,一般会先把要存储的数据写入 redis 或者 mongodb 中,然后每次渲染页面之前,先把这个数据取出来,放到 this.session 里,再渲染就没问题了
00
相似问题