새롭게 알게된 것들

[express] express request.body undefined 문제 해결

2dubbing 2018. 3. 30. 21:51


express 로 REST API를 만들던 도중 난관에 봉착했다.



DB table에 데이터를 INSERT 하기 위해 unit test를 만들고 테스트를 하는데



request 객체에 body가 자꾸 undefined 가 뜨는 것이었다.



처음에는 express router 를 잘못 써서 발생하는 문제인줄 알았다.



허나, router 를 사용하지 않고 테스트를 해봤는데 여전히 증상은 동일했다.



router 사용에는 문제가 없었다.



이리저리 해결방법을 찾기위해 express 공식페이지에서 부터 stackoverflow 등 돌아다녔다.



그러던 도중 body-parser 를 알게되었고 설정에 추가했다.



이제는 해결되는가 싶었다.








결과는 기대와는 달리 참담했다.



몇시간 째 붙잡고 있어 머리가 아파 일단 노트북을 덮었다.




그리고 다음날 문제를 해결할 수 있었다.



원인은 참 단순했다.








위 캡쳐는 request body 가 넘어오지 않았을 때의 코드다.




그리고 아래는 request body 문제를 해결한 후의 코드다.






문제의 원인은


app.use(bodyParser.json()); 의 우선순위 였다.





정말 부끄러웠다... 



얼마나 머릿속에 생각이 많았기에 저 한 줄 고칠생각을 못하고 있었나 싶었다.