2014年04月18日

node.jsでcookieを管理

node.jsでcookieを管理でcookieを管理する方法。

cookieの登録自体はブラウザに以下のheaderを送ってやればできる。

res.setHeader('Set-Cookie',['cookieProp=cookieValue');


取得は以下のようにrequestオブジェクトのheaderから取得できる。

server.on("request",function(req,res){
req.on("end",function(){
console.log(req.headers.cookie);
});
});


簡単に扱いたい場合はcookieモジュールを使うと良い

npm install cookie  --save-dev


そうすれば以下のように簡単にcookieを取得できる

cookie.parse(req.headers.cookie).cookieProp


以下の様なサンプルで確認できる。

index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="/form" action="/form" method="post">
<input type="text" name="inputA">
<input type="submit" value="送信">
</form>
</body>
</html>


demo.js

var http = require("http");
var qs = require("querystring");
var fs = require('fs');
var url = require('url');
var cookie = require('cookie');

var server = http.createServer();
server.on("request",function(req,res){
var reqBody = "";
req.on('data',function(data){
reqBody += data;
}).on('end',function(){
var path = url.parse(req.url);
switch(path.pathname){
case '/':
var cookies = cookie.parse(req.headers.cookie);
if(cookies.cookieValue){
res.setHeader('Content-Type','text/text');
res.write(cookies.cookieValue);
res.end();
}else{
fs.readFile('./index.html','UTF-8',function(err,data){
res.setHeader('Content-Type','text/html');
res.write(data);
res.end();
});
}
break;
case '/favicon.ico':
break;
default:
res.setHeader('Content-Type','text/text');
var form = qs.parse(reqBody);
if(form && form.inputA]){
res.setHeader('Set-Cookie',['cookieValue='+form.inputA]);
}
res.write("set cookie");
res.end();
break;
}
});
}).listen(1234);


タグ:Cookie node.js
posted by ねこまんま at 14:24 | Comment(0) | TrackBack(0) | node.js | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/394966478
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック