Expressjs-sessions

提供:Dev Guides
移動先:案内検索

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回更新されました。

最初の訪問