2

我试着像这样创建一个 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 对象读取后解析?

请指点?

4

1 回答 1

2

传递Objecttores.cookie()并将其自动字符串化为 JSON 的选项是Express 3.x 的新功能

对于 Express 2.x,您需要stringify在创建 cookie 时自行设置:

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);
于 2013-07-30T04:43:13.427 回答