UTALI

書き溜めておいた技術記事や旅行記のバックアップです。

Node.jsでCookieを扱う方法

f:id:mochizuki_p:20161005031521j:plain

Expressの場合を説明します。

cookie-parserを使う

ターミナルを開いて Expressプロジェクトのホームディレクトリに移動、以下のコマンドを入力

npm install cookie-parser --save

app.jsに以下の記述を追加

let cookieParser = require('cookie-parser')

let app = express();

これと

app.use(cookieParser())

注意すべきなのはappを宣言してからcookieParser()をincludeすることです。

Cookieを取得する方法

ルーティングの部分でreq.cookiesを参照する

例:

console.log(req.cookies);

結果:

{ _ga: 'GA1.1.730989922.1448376082',

  _tdim: '7bf4b9a7-2647-4dba-b518-4b14a5e608f8',

  'connect.sid': 's:Q-Mq4MnITZKuTGghEHf6U89CR-nluClq.J73+EaXJRDfesPdcawzHpUpbYSo/TP2lFBhnkQ0S4+o' }

Cookieを変更する場合

レスポンスの部分にcookie()を挟みこむ

app.get('/cookie',function(req, res){
     res.cookie(cookie_name , 'cookie_value').send('Cookie is set');
});

結果:

{ _ga: 'GA1.1.730989922.1448376082',
  _tdim: '7bf4b9a7-2647-4dba-b518-4b14a5e608f8',
  cookie_name: 'cookie_value'  'connect.sid': 's:Q-Mq4MnITZKuTGghEHf6U89CR-nluClq.J73+EaXJRDfesPdcawzHpUpbYSo/TP2lFBhnkQ0S4+o' }

ブラウザでCookieを取得したい場合はdocument.cookieを参照する

Cookieの有効期限を設定する

res.cookie(name , 'value', {expire : new Date() + 9999});

Unix時間でCookieが無効になる時間を指定する。

res.cookie(name, 'value', {maxAge : 9999});

こちらは現時点からこれだけ経過したらCookieが失効することを指定する どちらも ミリ秒単位で指定することに注意

Cookieの要素を消去する

clearCookie('cookie_name');

を利用する