簡體   English   中英

以值為對象創建JSON格式的res.cookie

[英]creating res.cookie in JSON format with value as object

我試過像這樣創建一個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對象讀取后解析它?

請提供指示?

Object傳遞給res.cookie()並將其自動字符串化為JSON的選項是Express 3.x的一項新功能

對於Express 2.x,您需要在創建cookie時stringify進行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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM