icon
icon

セッションを扱う!express-sessionを利用する方法【初心者向け】

初心者向けにNode.jsのフレームワークExpressでセッション機能を使う方法について解説しています。sessionをインストールして実際に使う構文を書きながら説明しています。自身でもプログラムを書いて理解していきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、express sessionについて解説します。

Node.js環境でexpressを使用して、セッション機能を行いたい場合に参考にしてみてください。

 

なお本記事は、TechAcademyのNode.jsオンライン講座の内容をもとに作成しています。

 

田島悠介

今回はexpress-sessionを使ってみよう。

大石ゆかり

田島メンター!express-sessionというのは何ですか~?

田島悠介

express-sessionはセッション管理を行うモジュールなんだ。まずはインストール方法と基本の形、次に実際の記述例を見ていくよ。

大石ゆかり

分かりました。お願いします!

 

Express sessionとは

Expressとは、Node.jsのフレームワークの一つです。

sessionとは、サーバー側でクライアントの状態を管理する方法です。

サーバーとはシステムを動かしているインターネット上のコンピューターです。

クライアントとはサーバーにアクセスしているパソコンやスマホです。

セッションを利用することで、同一クライアントからサーバーに何回アクセスされたか等を簡単に管理することができます。

 

Express sessionの使い方

Expressでsessionをインストール

インストールコマンド

npm install --save express-session

インストール解説

npm installでnpmを使用してexpress-sessionモジュールをインストールしています。

–saveオプションを使用することでインストール情報を保存することができます。

npmのインストール方法についての記事も合わせて参考にしてみてください。

 

田島悠介

express-sessionのインストール方法だよ。

大石ゆかり

saveオブションはpackage.jsonに情報を残すものでしたね。

田島悠介

次は基本の構文と、実際の記述の例を確認してみようか。

 

session基本構文

基本構文

インスタンス名.use(session({
  設定項目: '値',
}))

基本構文解説

インスタンス名で指定したオブジェクトに対してuseでセッションを使用することを宣言します。

sessionで処理としてはセッション処理を行うことを指定します。

2行目の設定項目: ‘値’,では、具体的にどのような処理を行うかを指定しています。

設定項目とその設定項目に設定する値をそれぞれ指定します。

 

[PR] Node.jsで挫折しない学習方法を動画で公開中

Express sessionを使ってみよう

Expressでsessionを利用する基本

ソースコード

var app = express()
app.set('trust proxy', 1)
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}))

解説

1行目の、var app = express( )では、express関数を利用してappというインスタンスを作成しています。

2行目の、app.set(‘trust proxy’, 1) では、appに最初のプロキシを信頼するという設定を行っています。

プロキシとはサーバーの一種です。

プロキシを利用する事で、インターネットのファイヤーウォールで制限された環境下でも、制限無くインターネットアクセスが可能になる等のメリットがあります。

3行目の、app.use(session({では、セッションを利用することを宣言しています。

4行目の、secret: ‘block chain’,では、block chain をキーとしてクッキーを暗号化する設定をしています。

クッキーとはクライアント側に保存される管理用の変数のようなものです。

変数とは値を入れる箱のようなものです。

5行目の、resave: false,では、セッションチェックを行うたびにセッションを作成するかどうかの指定です。falseにすることで、毎回セッションを作成しないように指定します。

6行目の、saveUninitialized: true,では、未初期化状態のセッションを保存するかどうかの指定です。保存する場合はtrueを指定します。

7行目の、cookie: { secure: true }では、Cookieの有効期限をミリ秒で設定します。指定なし、もしくはnullだとブラウザデフォルトの挙動(一般的にはブラウザを閉じたらCookie削除)になります。

8行目の、}))では、3行目の処理を終了しています。

 

今回は、express sessionについて解説しました。

実際の開発現場でインターネットアクセスが制限される場合などに、プロキシサーバーを利用したい場合に参考にしてみてください。

 

田島悠介

具体的な書き方の例を見てみたよ。

大石ゆかり

クッキーの有効期限なども、ここで設定するんですね。

田島悠介

セッションやクッキーに関する機能は、ログイン画面を実装する際などに必要になるので覚えておこう。

大石ゆかり

なるほど、Webアプリを作るときには必須になりそうですね。ありがとうございました!

 

また、オンラインのプログラミングスクールTechAcademyでは、Node.jsオンライン講座を開催しています。

Node.jsを使ってWebアプリケーションを開発することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、習得することが可能です。

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する