요청의 본문(body)의 데이터를 해석해서
req.body 객체로 만들어주는 미들웨어 입니다.
보통 '폼 데이터(URL-encoded)'나
'AJAX 요청(JSON)' 의 데이터를 처리 합니다.
멀티파트(이미지, 동영상, 파일) 데이터는 처리 못합니다.
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
JSON payloads(요청시 body 에 담겨오는 JSON 형식의 데이터)를
바디파서를 기반으로 분석하고 req.body 객체로 만들어줍니다.
form submit 했을 때 urlencoded 방식으로 데이터가 넘어오는데
그 데이터를 바디파서를 기반으로 분석하고 req.body 객체로 만들어줍니다.
urlencoded 의 형태 :
&으로 분리되고 '=' 기호로 키와 값을 연결하는 형태의 데이터로
쿼리스트링과의 차이점은
url 뒤에 붙는 것이 아니라
body 에 들어가는 데이터라는 것입니다.
extended 옵션 :
객체 형태로 전달된 데이터 내에서 또다른 중첩된 객체를
true : 허용
false : 허용하지 않음
익스프레스 4.16.0 버전부터
body-parser 의 일부 기능이
익스프레스에 내장되었으므로
Raw, Text 형식의 데이터를 다루지 않는다면
따로 설치할 필요가 없습니다.
Raw : 요청의 본문이 ‘버퍼 데이터’일 때 해석
Text : 요청의 본문이 ‘텍스트 데이터’일 때 해석
raw, text 사용예시 :
설치 : npm i body-parser
const bodyParser = require('body-parser');
app.use(bodyParser.raw());
app.use(bodyParser.text());