Koajs-sessions
提供:Dev Guides
Koa.js-セッション
HTTPはステートレスなので、リクエストを他のリクエストに関連付けるには、HTTPリクエスト間でユーザーデータを保存する方法が必要です。 CookieとURLパラメータはどちらも、クライアントとサーバー間でデータを転送するのに適した方法です。 ただし、両方ともクライアント側で読み取り可能です。 セッションはまさにこの問題を解決します。 クライアントにIDを割り当て、そのIDを使用してそれ以降のすべての要求を行います。 クライアントに関連付けられた情報は、このIDにリンクされたサーバーに保存されます。
私たちはkoa-sessionが必要になるので、それを使用してインストールします-
npm install --save koa-session
*koa-session* ミドルウェアを配置します。 この例では、RAMを使用してセッションを保存します。 これを実稼働環境で使用しないでください。 セッションミドルウェアはすべてを処理します。 セッションの作成、セッションCookieの設定、およびコンテキストオブジェクトでのセッションオブジェクトの作成。
同じクライアントから再度リクエストを行うたびに、セッション情報が保存されます(サーバーが再起動されなかった場合)。 このセッションオブジェクトにさらにプロパティを追加できます。 次の例では、クライアントのビューカウンターを作成します。
var session = require('koa-session');
var koa = require('koa');
var app = koa();
app.keys = ['Shh, its a secret!'];
app.use(session(app)); //Include the session middleware
app.use(function *(){
var n = this.session.views || 0;
this.session.views = ++n;
if(n === 1)
this.body = 'Welcome here for the first time!';
else
this.body = "You've visited this page " + n + " times!";
})
app.listen(3000);
上記のコードは、ユーザーがサイトにアクセスすると、ユーザーの新しいセッションを作成し、Cookieを割り当てます。 次回ユーザーがアクセスすると、Cookieがチェックされ、それに応じてpage_viewセッション変数が更新されます。
アプリを実行して localhost:3000 にアクセスすると、次の応答が返されます。
ページに再度アクセスすると、ページカウンターが増加します。 この場合、ページは12回更新されました。