[Node.js]ExpressJS 3.xから4.xにUpdate
connect-redisを1.5にアップデートしたらエラーで動かない。。。
express 4.0にする必要があったので3.xで作成したアプリを4.xに移行したときの覚書。
環境: node.js v0.10.26, express v4.0.0-rc3
参考サイト
- ExpressJS 4.0: New Features and Upgrading from 3.0 ♥ Scotch
- Migrating from 3.x to 4.x · visionmedia/express Wiki · GitHub
4.0からはconnectが削除されるので、付随していたミドルウェアを自前で読み込まなければならない。
例を見るのが分かりやすい。
express 3.xの記述例
var express = require('express');
var app = express();
var RedisStore = require('connect-redis')(express);var C = require('./config');
var GA = require('./lib/google-analytics');
var system = require('./routes/system');// Load Module
app.use(express.urlencoded());
app.use(express.json());
app.use(express.cookieParser(C.cookieSecret));
app.use(express.session({
key: C.cookieKey,
secret: C.cookieSecret,
store: new RedisStore({
db: C.db.session.database
})
}));
app.use(express.compress()); // Use gzip
app.use(app.router);app.all('*', function(req, res, next) {
// Tracking
GA.trackPage(req.url, req);// Continue
next();
});// System
app.post('/login', system.login);app.listen(C.port);
express 4.xの記述例
var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var compress = require('compression')();var app = express();
var C = require('./config');
var GA = require('./lib/google-analytics');
var system = require('./routes/system');// Load Module
app.use(bodyParser());
app.use(cookieParser(C.cookieSecret));
app.use(session({
key: C.cookieKey,
secret: C.cookieSecret,
store: new RedisStore({
db: C.db.session.database
})
}));
app.use(compress); // Use gzipapp.all('*', function(req, res, next) {
// Tracking
GA.trackPage(req.url, req);// Continue
next();
});// System
app.route('/login').post(system.login);app.listen(C.port);
< Related Posts >