Blog

Node.js, Express 4 로 시작하기

April 8, 2014

Node.js, Express 4 로 시작하기

Express.js 4.0

express 가 4.0 RC4 로 버전 업 되었습니다. 여기 에 의하면 Release Candidates 이며, 곧 머지않아 정식 버전이 나올 것 같습니다. 이 글은 express 3 에서 express 4 로 옮기는 과정에서 어떤 미들웨어를 설치해야 하는지를 담은 글입니다.

1. References

먼저 이 포스팅을 읽으시기 전에, 아래 글들을 읽으시면 마이그레이션이 더 빠를 것 같습니다.

1. Migrating from 3.x to 4.x
2. Connect’s Middleware
3. ExpressJS 4.0: New Features and Upgrading from 3.0

2. Source

express 4 에서는 static 만 제외하고 모든 미들웨어를 따로 설치해야 합니다. 미들웨어가 익스프레어스에서 떨어져 나온 이유는 각 미들웨어의 지속적인 업데이트를 위해서라고 하는데요. 자주 쓰는 미들웨어가 어떻게 변경되었는지 알아보겠습니다.

1. express.logger -> morgan
2. express.bodyparser -> body-parser
3. express.json -> body-parser.json (body-parser 에 포함)
4. express.urlencoded -> body-parser.urlencoded (body-parser 에 포함)
5. express.methodOverride -> method-override
6. express.session -> express-session
7. express.cookieParser -> cookie-parser
8. express.favicon -> static-favicon
9. express.errorHandler -> errorhandler

더 자세한 내용은 여기를 참고하시면 되겠습니다. 변경된 코드를 한번 확인해 볼까요? 이건 express 3 에서의 코드입니다.

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'app/views'));
app.engine('.html', ejs.__express);
app.set('view engine', 'html');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.cookieParser());
app.use(express.session({
    secret : 'express-template'
}));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
    app.use(express.errorHandler());
}

이건 express 4 로 업데이트 후의 코드입니다.

// middlewares excepted from express 4.0
var morgan = require('morgan'); // logger
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var favicon = require('static-favicon');
var errorHandler = require('errorhandler');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'app/views'));
app.engine('.html', ejs.__express);
app.set('view engine', 'html');
app.use(favicon());
app.use(morgan('dev')); // log every request to the console
app.use(cookieParser());
app.use(session({
    secret : 'express-template'
}));
app.use(bodyParser()); // pull information from html in POST
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(methodOverride()); // simulate DELETE and PUT
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
    app.use(errorHandler());
}

돌아가는 express 4 코드를 찾으신다면 https://github.com/ansterd/express4-template 여기를 참고하시면 되겠습니다. clone 으로 받은 뒤에 npm install 로 모듈 설치 후 바로 node server.js 커맨드로 실행 가능 합니다. bowergrunt, watch 세팅도 되어있으니 한번 확인해 보세요.

Array