1

ExpressAPIリファレンスでデータを見ました

cookieのexpressjsapiリファレンス

ドキュメントでは、CookieはJSONとして送信できますres.cookie('cart', { items: [1,2,3] });

だから私は試し始めました。文字列を使用するとcookieはうまく機能しましたが、JSON形式では機能しませんでした。

   res.cookie('cookietmp',{test: ['test1', 'test2']}, { maxAge: 900000, httpOnly: true});
   res.send('test cookie: ' + req.cookies.cookietmp)

これは私のコードです

と私のブラウザの表示

   test cookie: [object Object]

ブラウザがJSONなどの形式を認識していないようですが、どうすれば解決できますか?

4

2 に答える 2

0

これはオブジェクト リテラルであり、 JSON ではありません。JSON はシリアル化形式ですが、Cookie 値として再設定しようとしているのは文字列ではありません。'[object Object]'それが返されるため、ブラウザに表示されObject.toStringます。

プログラマーであるあなたは、以下を使用してそのオブジェクトを JSON に変換する必要がありますJSON.stringify

var cookieValue = JSON.stringify({test: ['test1', 'test2']}, { maxAge: 900000, httpOnly: true});
res.cookie('cookietmp', cookieValue);
于 2012-09-03T04:11:55.227 に答える