알게 모르게 사용하는 express.js 의 미들웨어 중 bodyParser() 라는 녀석이 있다.
이 녀석은 다음 3개의 미들웨어를 포함한 래퍼이다. 즉, 별도의 파일업로드 미들웨어와 사용시 충돌이 날 수 있다.
- express.json()
- express.urlencoded()
- express.multipart()
express.js 메뉴얼에는 아래와 같이 명시되어 있다.
app.use(express.bodyParser());
// is equivalent to:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
jquery-file-upload-middleware 와 everyauth 를 사용하고 있는데 세션을 받아 오기 위해 everyauth 다음에 업로드 미들웨어를 선언하면 해당 url 에 접근할 수가 없었다. 반면 everyauth 는 반드시 bodyparser() 다음에 위치해야 토큰을 정상적으로 받아 올 수 있다.
문제는 구조상 bodyParset() 다음에 everyauth() 를 선언하고 파일업로드 미들웨어를 선언해야 할 경우 bodyParser() 안에 포함된 multipart() 때문에 파일업로더가 매핑한 경로까지 도달하지 못하는 것을 몇시간의 삽질로 알게 되었다. ;;;
'Development > Coding' 카테고리의 다른 글
Dart lang (0) | 2013.11.15 |
---|---|
몽고DB 의 좋은 점 몇가지 (7) | 2013.04.16 |
PHP 변수 초기화 및 조건부 할당 (0) | 2012.11.08 |
KCP 결제 모듈 적용기 (0) | 2012.10.11 |
Jade 템플릿 사용시 IE 예외 처리 (0) | 2012.09.19 |