我试过创建一个像这样的res.cookie:
function createCookie(res, loginToken, user) {
res.cookie(
'testcookie',
{
'logintoken': loginToken.cookieValue,
'user_id' : user.id,
'username' : user.name
},
{
expires: new Date(Date.now() + 2 * 604800000),
path: '/'
}
);
}
然后,当请求进入时,我会像这样访问cookie:
console.log (req.cookies)
我得到了这个输出:
{
...
testcookie: '[object Object]'
}
如果我尝试:
JSON.parse(testcookie) // it errors not not being a valid JSON object
JSON.stringify(testcookie) // does not help either.
如何在JSON对象中发送res.cookie,我可以在从req对象读取后解析它?
请提供指示?
答案 0 :(得分:2)
将Object
传递给res.cookie()
并将其自动字符串化为JSON的选项为new feature of Express 3.x。
对于Express 2.x,您在创建cookie时需要自己stringify
:
function createCookie(res, loginToken, user) {
var jsonValue = JSON.stringify({
'logintoken': loginToken.cookieValue,
'user_id' : user.id,
'username' : user.name
});
res.cookie(
'testcookie',
jsonValue,
{
expires: new Date(Date.now() + 2 * 604800000),
path: '/'
}
);
}
也可能自己parse
:
var testcookie = JSON.parse(req.cookies.testcookie);