노드에서 세션 및 에러 핸들링시 주의할점

몇 시간을 삽질햇다.  -_-;;

분명 API 문서를 보면서 가이드 따라 잘 했는데..

도대체 왜 세션이 안되는거야~!! 라고 버럭질햇는데..

API 문서를 꼼꼼히 보지 않으면,.. 다들 고생할듯싶다.

1. 세션 설명
http://expressjs.com/guide.html#session-support 

2. 에러 핸들링
http://expressjs.com/guide.html#error-handling 

자바스크립트가 스크립팅 언어라는 사실을 다시금 일깨워준다.
무엇을 먼저 실행하느냐에 따라,.. 결과가 달라진다.
명심하자!

1) 제대로 된 설정

/**
 * Express 서버 설정
 */
app.configure(function() {
app.use(express.cookieParser());
app.use(express.session({store: sessionStore, secret: ‘secret’, key: ‘express.sid’}));
app.use(express.errorHandler({dumpExceptions : false, showStack : true}));
app.use(app.router); // 반드시 라우터 설정 이전에 에러와 세션이 설정되어야한다.
app.register(‘.html’, require(‘ejs’));
app.set(‘views’, __dirname + ‘/views’);
app.set(‘view engine’, ‘html’);
});

2) 잘못 된 설정: 뭔가.. register, set, use 처럼 보기 좋으라고 각 설정을 묶어놨는데.. 잘 못된 설정이다.

/**
 * Express 서버 설정
 */
app.configure(function() {
app.register(‘.html’, require(‘ejs’));

app.set(‘views’, __dirname + ‘/views’);
app.set(‘view engine’, ‘html’);

app.use(express.cookieParser());
app.use(express.session({store: sessionStore, secret: ‘secret’, key: ‘express.sid’}));
app.use(app.router);
          app.use(express.errorHandler({dumpExceptions : false, showStack : true}));
});

불꽃남자

UI 개발자

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.