Node.jsで複数の 'Set-Cookie' を設定する

メモ。

httpServerResponse.setHeader('Set-Cookie', [
    "KEY1=VAL1; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT"
  , "KEY2=VAL2; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT"
  , "KEY3=VAL3; path=/; expires=Sat, 34 Nov 3013 08:34:39 GMT"
]);
httpServerResponse.writeHead(200, {
    'Content-Type': 'text/html'
  , 'Content-Length': Buffer.byteLength(mess)
});
httpServerResponse.end(mes);

もしくは

httpServerResponse.writeHead(200, [
    [ 'Content-Type', 'text/html' ]
  , [ 'Content-Length', Buffer.byteLength(mess) ]
  , [ 'Set-Cookie', "KEY1=VAL1; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" ]
  , [ 'Set-Cookie', "KEY2=VAL2; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" ]
  , [ 'Set-Cookie', "KEY3=VAL3; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" ]
]);
httpServerResponse.end(mes);

httpServerResponse.setHeader('Set-Cookie', "..."); を繰り返すと前出の Set-Cookie の上書きをしてしまうのが微妙です。

おまけ

さっき気づいたけど、querystring.parse 使うとcookieのパースができそう

var qs = require('querystring');
var cookies = qs.parse(httpServerRequest.headers['cookie'].replace(/[,;]\s*/g));

こんな感じ。