home
スポンサーリンク
2015-09-01

Node.js + Express 4.xで、セッション管理にRedisを使う

インターネット上には、Express 3.x系の情報ばかりで、苦労したので備忘録として。

前提

以下のバージョンを使用しています。

モジュール名 バージョン
Node.js 0.12.0
Express 4.13.3
express-session 1.11.3
connect-redis 2.4.1

モジュールのインストール

あらかじめ必要なモジュールをインストールします。

cd /path/to/project-directory/
npm install express --save
npm install express-session --save
npm install connect-redis --save

最新版で本記事どおりうまく動かないなどの場合は、以下のようにバージョンを指定してインストールしてください。

cd /path/to/project-directory/
npm install express@4.13.3 --save
npm install express-session@1.11.3 --save
npm install connect-redis@2.4.1 --save

コード本文

Node.jsのコードを記述していきます。

var express = require('express');
var app = express();
var session = require('express-session');
var RedisStore = require('connect-redis')(session);

app.use(session({
  secret: 'secret',  // Secret Keyで暗号化し、改ざんを防ぐ
  resave: false,
  saveUninitialized: true,
  store: new RedisStore({  // Redisの設定
    host: '127.0.0.1',
    port: 6379,
    prefix: 'sid:'
  }),
  cookie: {
    path: '/'
  }
}));

/**
 * あとは処理を記述していく
 */

app.get('/', function (req, res) {
  // 処理
});

app.listen(3000);

これで実装できます。

パターンさえ掴めば簡単ですが、うまくいかないことも多いので、一応成功例として。

これでもうまくいかない場合は、ミドルウェア(app.useの箇所)の記述順序を変えてみてください。他のミドルウェアが導入されている場合、記述の順番によっては動作しないことがあります。

まとめ

Node.jsたのしい。

コメントを残す

スポンサーリンク
2015-11-04

EC2のセキュリティグループにCloudFrontからしかアクセスを許可しない設定を追加する(AWS Lambda, SNS, S3利用 サーバーレス版)

本記事投稿日現在、AWSのセキュリティグループの受信許可設定には、IPアドレスの指定および他のセキュリティグループのID指定しか対応していません。つまり、CloudFront経由でしかアクセスさせたくない場合であっても、…
スポンサーリンク
ツイートする
シェアする
オススメする
ブックマークする
購読する