Node.js + Express 4.xで、セッション管理にRedisを使う
2015-09-01
インターネット上には、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たのしい。