ExpressJS-セッション
HTTPはステートレスです。リクエストを他のリクエストに関連付けるには、HTTPリクエスト間でユーザーデータを保存する方法が必要です。CookieとURLパラメータはどちらも、クライアントとサーバー間でデータを転送するための適切な方法です。しかし、それらは読み取り可能であり、クライアント側でもあります。セッションはまさにこの問題を解決します。クライアントにIDを割り当てると、そのIDを使用してそれ以降のすべての要求が行われます。クライアントに関連付けられた情報は、このIDにリンクされたサーバーに保存されます。
Express-sessionが必要になるので、次のコードを使用してインストールします。
npm install --save express-session
入れます session そして cookie-parserミドルウェアが設置されています。この例では、セッションを保存するためのデフォルトのストア、つまりMemoryStoreを使用します。これを実稼働環境で使用しないでください。セッションミドルウェアは、セッションの作成、セッションCookieの設定、セッションオブジェクトの作成など、すべてを処理します。req オブジェクト。
同じクライアントから再度リクエストを行うと、セッション情報が保存されます(サーバーが再起動されていない場合)。セッションオブジェクトにさらにプロパティを追加できます。次の例では、クライアントのビューカウンターを作成します。
var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var app = express();
app.use(cookieParser());
app.use(session({secret: "Shh, its a secret!"}));
app.get('/', function(req, res){
if(req.session.page_views){
req.session.page_views++;
res.send("You visited this page " + req.session.page_views + " times");
} else {
req.session.page_views = 1;
res.send("Welcome to this page for the first time!");
}
});
app.listen(3000);
上記のコードは、ユーザーがサイトにアクセスすると、ユーザーの新しいセッションを作成し、Cookieを割り当てます。次回ユーザーが来ると、Cookieがチェックされ、page_view セッション変数はそれに応じて更新されます。
アプリを実行して localhost:3000、次の出力が表示されます。
ページに再度アクセスすると、ページカウンターが増加します。次のスクリーンショットのページは42回更新されました。