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));
こんな感じ。