[Node.js]ExpressJS 3.xから4.xにUpdate

nodejs_express_3to4connect-redisを1.5にアップデートしたらエラーで動かない。。。

express 4.0にする必要があったので3.xで作成したアプリを4.xに移行したときの覚書。

環境: node.js v0.10.26, express v4.0.0-rc3

参考サイト

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 gzip

app.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 >