在koa2中使用 ctx.cookies.get得不到cookie。打印结果始终是undefined。
代码如下
// 用户登录
router.post('/user/login', async (ctx, next) => {
let {username, pwd} = ctx.request.body;
let result = await User.findOne({username});
console.log(result)
if(!result){
return ctx.body = {
code:0,
msg: '用户名不存在'
}
} else if(result.pwd === md5Pwd(pwd)) {
console.log(result._id); // 有值
ctx.cookies.set('userid', result._id);
console.log(ctx.cookies.get('userid')); // undefined
return ctx.body = {
code:1,
msg: '登录成功',
data: result
}
}
})
> 引用文字
ctx.cookies.set是在HTTP响应头里面增加Set-Cookie字段
ctx.cookies.get是从HTTP请求头里面读取Cookie字段
从服务器角度来看是先收到客户端的request请求,然后输出response响应。所以ctx.cookies.set的cookie只有在下次request的时候才能通过ctx.cookies.get获取到