body-parser는 JSON과 URL-encoded 형식의 데이터 외에도 Raw, Text 형식의 데이터를 추가로 해석할 수 있습니다. Raw는 요청의 본문이 버퍼 데이터일 때, Text는 텍스트 데이터일 때 해석하는 미들웨어입니다. 버퍼나 텍스트 요청을 처리할 필요가 있다면 다음과 같이 추가합니다.
app.use(express.raw()); app.use(express.text());
요청 데이터 종류에 대해 간단히 살펴봅시다. JSON은 JSON 형식의 데이터 전달 방식이고, URL-encoded는 주소 형식으로 데이터를 보내는 방식입니다. 폼 전송은 URL-encoded 방식을 주로 사용합니다. urlencoded 메서드를 보면 { extended: true }라는 옵션이 들어 있습니다. 이 옵션이 false이면 노드의 내장 querystring 모듈을 사용해 쿼리스트링을 해석하고, true이면 qs 모듈을 사용해 쿼리스트링을 해석합니다. 기본값은 false입니다. qs 모듈은 내장 모듈이 아니라 npm 패키지이며, querystring 모듈의 기능을 좀 더 확장한 모듈입니다.