Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9409

cookie-parserとcookieについて【超初心者向け】

$
0
0
どうも、webエンジニア初級者です。 expressについて勉強していると"cookie-parser"ってライブラリをよく見かけます。 なんとなくコピペで動かせてはいるのですが、ちゃんと調べたことなかったので調べました。 大前提:Cookieとは Cookie(HTTP Cookie)は、Webサーバーがユーザーのブラウザに保存するデータのこと。 保存されたCookieは以降、リクエスト時にとリクエストヘッダーを使ってサーバーへ返送されます。 参考:https://developer.mozilla.org/ja/docs/Web/HTTP/Cookies 使い方の例として、サイトの訪問者を識別するIDを保存しておき、2回目以降のアクセスの際に自動でログインしたり、前回の閲覧履歴を表示したりってのが考えられます。 本題:cookie-parserについて https://www.npmjs.com/package/cookie-parser サーバに送られてきたリクエストに付加されたCookie情報を解析し、Cookie名をキーにしたオブジェクトを req.cookies に格納してくれます。 cookieを扱いやすくしてくれる便利ツールってことですね。 使ってみよう 基本となるexpress環境を作ります。公式ドキュメント通りに作っておきます。 app.js const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) }) cookie-parserの導入 次のコマンドでインストールします。 $ npm install cookie-parser expressに適用します。 app.js const express = require('express') const cookieParser = require('cookie-parser') const app = express() app.use(cookieParser()) ... cookieを読み書きする キー"test"にアクセス回数を保存して、"n回アクセスしました"と表示してみます。 app.js app.get('/', (req, res) => { let count; if (!!req.cookies.test) { count = Number.parseInt(req.cookies.test) + 1; } else { count = 1; } let message = count + '回アクセスしました'; // cookieを設定 res.cookie('test', count, { maxAge: 60000, httpOnly: false }); res.send(message) }) ブラウザーで http://localhost:3000 にアクセスして、リロードを繰り返すとカウントが増えていきます。 ソース全体はこんな感じです app.js const express = require('express') const cookieParser = require('cookie-parser') const app = express() app.use(cookieParser()) const port = 3000 app.get('/', (req, res) => { let count; if (!!req.cookies.test) { count = Number.parseInt(req.cookies.test) + 1; } else { count = 1; } let message = count + '回アクセスしました'; // cookieを設定 res.cookie('test', count, { maxAge: 60000, httpOnly: false }); res.send(message) }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })

Viewing all articles
Browse latest Browse all 9409

Trending Articles