Expressjs-cookies
ExpressJS-クッキー
Cookieは、サーバー要求でクライアントに送信され、クライアント側に保存される単純な小さなファイル/データです。 ユーザーがWebサイトをロードするたびに、このCookieがリクエストとともに送信されます。 これにより、ユーザーのアクションを追跡できます。
以下は、HTTP Cookieの多数の用途です-
- セッション管理
- パーソナライゼーション(推奨システム)
- ユーザー追跡
ExpressでCookieを使用するには、Cookieパーサーミドルウェアが必要です。 それをインストールするには、次のコードを使用します-
npm install --save cookie-parser
ExpressでCookieを使用するには、 cookie-parser が必要です。 cookie-parserは、_クライアントリクエストオブジェクトに添付されたCookieを解析するミドルウェアです。 これを使用するには、 index.js ファイルで必要になります。これは、他のミドルウェアを使用するのと同じ方法で使用できます。 ここでは、次のコードを使用します。
var cookieParser = require('cookie-parser');
app.use(cookieParser());
cookie-parserはCookieヘッダーを解析し、 req.cookies にCookie名をキーとするオブジェクトを設定します。 新しいCookieを設定するには、Expressアプリで次のような新しいルートを定義します。
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.cookie('name', 'express').send('cookie set');//Sets name = express
});
app.listen(3000);
Cookieが設定されているかどうかを確認するには、ブラウザに移動してコンソールを起動し、入力します-
console.log(document.cookie);
次のような出力が得られます(おそらく、ブラウザの拡張機能により、さらに多くのCookieが設定されている可能性があります)-
"name = express"
また、ブラウザーはサーバーに照会するたびにCookieを送り返します。 サーバーのCookieを表示するには、ルートのサーバーコンソールで、そのルートに次のコードを追加します。
console.log('Cookies: ', req.cookies);
次回このルートにリクエストを送信すると、次の出力が表示されます。
Cookies: { name: 'express' }
有効期限付きのCookieの追加
期限切れのCookieを追加できます。 期限切れのCookieを追加するには、プロパティ「expire」が設定されたオブジェクトを期限切れにしたい時間に渡します。 例えば、
//Expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {expire: 360000 + Date.now()});
有効期限を設定する別の方法は、 'maxAge' プロパティを使用することです。 このプロパティを使用して、絶対時間ではなく相対時間を提供できます。 以下は、このメソッドの例です。
//This cookie also expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {maxAge: 360000});
既存のCookieを削除する
Cookieを削除するには、clearCookie関数を使用します。 たとえば、 foo という名前のCookieをクリアする必要がある場合は、次のコードを使用します。
var express = require('express');
var app = express();
app.get('/clear_cookie_foo', function(req, res){
res.clearCookie('foo');
res.send('cookie foo cleared');
});
app.listen(3000);
次の章では、Cookieを使用してセッションを管理する方法について説明します。