Development/Coding
Express 와 별도의 파일업로더 사용시 주의점
soomtong
2013. 1. 23. 16:43
알게 모르게 사용하는 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() 때문에 파일업로더가 매핑한 경로까지 도달하지 못하는 것을 몇시간의 삽질로 알게 되었다. ;;;