Express.jsでCookie情報を処理する方法

Express.jsでCookie情報を処理する方法を紹介します。 コードもGit Hubに掲載するので参考にしてください。

概要

Express.jsでは、Cookieの処理はミドルウェア関数内で行います。
ミドルウェア関数の引数には、requestオブジェクトとresponseオブジェクトが渡されます。 これらのオブジェクトを使用して、Cookieに関連するデータの取得やレスポンスの生成などを行います。

ここでは、以下バージョンを使用した、Express.jsでCookie処理する方法を説明します。

Express.js v4.17.1
nodejs v19.7.0
cookie-parser v1.4.5

また、今回作成するコードは全て、GitHubに掲載しています。

なお、本記事では、cookie-parserモジュールを使用するため以下コマンドを入力して、cookie-parserをインストールしてください、

npm install cookie-parser

Cookie情報を取得する方法

Cookieに関する情報を取得するには、Cookie-parserミドルウェアとリクエストオブジェクトを使用します。 Cookie-parserは、クライアントからのリクエストに含まれるCookieを解析します。解析されたCookieはリクエストオブジェクトのcookiesプロパティに格納されます。

以下のサンプルコードは、Express.jsでCookieを理解するための例です。GETリクエストを受け取り、リクエストに含まれるCookieにアクセスして、それらの値を含むレスポンスを返します。

cookie.js

const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();

app.use(cookieParser());

app.get('/', (req, res) => {
  // Cookieの取得
  const cookies = req.cookies;

  const response = {
    cookies: cookies
  };

  res.json(response);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

解説

  • Expressとcookie-parserのインスタンスの作成
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();

Expressモジュールとcookie-parserモジュールをインポートし、そのインスタンスを作成します。

  • cookie-parserのミドルウェア関数の使用
app.use(cookieParser());

cookie-parserのミドルウェア関数を使用します。これにより、リクエストに含まれるCookieは自動的に解析され、req.cookiesに格納されます。

  • ルートハンドラの定義
app.get('/', (req, res) => {
  // Cookieの取得
  const cookies = req.cookies;

  const response = {
    cookies: cookies
  };

  res.json(response);
});

ルート(’/’)へのGETリクエストをハンドリングします。リクエストが来ると、リクエストに含まれるCookieを取得し、それを含むオブジェクトをJSON形式でレスポンスとして返します。

  • サーバーの起動
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Expressのインスタンスをポート3000でリッスンさせ、サーバーを起動します。サーバーが起動したら、“Server is running on port 3000"というメッセージをコンソールに出力します。

テスト

curl -b "key=value" http://localhost:3000

このコマンドで、キーが"key"で値が"value"のCookieを含むリクエストを送ります

まとめ

この記事では、Express.jsを使用してCookieを処理する方法を紹介しました。 Cookieを利用することで、ユーザーの状態を管理したり、ユーザーの設定を保存したりすることができます。