이제 마지막 준비과정인 app.js 세팅입니다. 기본설정도 적응하면 편할 수 있지만, swig엔진 및 추가 기능을 쓰기위해서는 조금 내용을 수정해줘야 합니다.

var express = require('express');
var http = require('http');
var path = require('path');

// swig engine
var swig = require('swig');

// routes
var routes = require('./routes');
var user = require('./routes/user');			

// express
var app = express();

1.기본 선언부분입니다. 다른 점이 보이시나요? 추가적으로 제가 선언해준 항목은 swig engine부분 뿐입니다. 이렇게 해야지 swig 엔진을 쓸 수 있습니다.

// all environments
app.set('port', process.env.PORT || 2727);

// setting swig engine
app.engine('html', swig.renderFile);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));

// available req.body
app.use(express.bodyParser());
app.use(express.session());
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));

2.미들웨어 부분입니다. 여기서 신경써야 할 부분이 많은 데 일단 첫번째로 앞으로 접속할 포트를 설정해주는 부분입니다. 저는 2727으로 설정해 놓았습니다. 원하는 포트를 설정해서 열어주시면 되고 나중에 개발할때 결과를 확인하려면 http://localhost:2727(저의 경우)로 접속하면 됩니다.

3.두번째로 살펴볼 부분은 swig engine 설정부분입니다. app.engine('html', swig.renderFile)부분이 추가되었고, 원래는 ejs로 되어있어야할 app.set 부분을 swig으로 바꾸어 주었습니다.

4.그 다음에 cookieParser 다음에 app.use(express.bodyParser())부분을 추가해주었습니다. 이는 나중에 자주 사용하게 될 request명령어인 req.body를 쓰기위해 꼭 필요합니다.

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
  app.set('view cache', false);
  swig.setDefaults({ cache: false });   
}

5.마지막으로 developement 부분입니다. 여기에 app.set('view cache', false)와 swig.setDefaults({ cache: false })이 추가 되어있는데 이는 개발할때 설정과 파일을 바꾸었을시 캐쉬가 남아 제대로 변경이 안되었을 경우를 방지하기 위해 cache설정을 false로 하여 새로고침만으로 이전 기록이 남지 않게 변경된 화면을 불러올 수 있게 하는 것입니다.

6.이제 모든 과정이 완료되었습니다! 정말 수고하셨습니다. 약간은 긴 내용이었지만, 튼튼한 주춧돌 위에 훌륭한 집이 지어지는 것처럼 node.js를 공부할 튼튼한 기초를 세워놓는 것이니 기억이 안나시면 나중에도 꼭 다시 한번 보시기 바랍니다. 이제 첫째주의 node.js 강의를 마음 편하게 따라오시면 됩니다.

※ 이 내용은 node.js, mongoDB 스터디페이지 codeMembersPage에서 진행되는 내용을 정리한 것입니다. 모든 저작권은 본인에게 있으며 상업적 이용, 컨텐츠 변경 가능하며 저작자 표기만 해주시면 됩니다.


WRITTEN BY
강수명 Vanns Kang
하고 싶은거 하고 사는 조금은 잘 빡치는 평화주의자