#7-1 BodyParser & PostMan & 회원 가입 기능

HeeDong-log·2023년 9월 6일

body-parser

요청의 본문에 있는 데이터를 해석해서 req.body 객체로 만들어주는 미들웨어.
요청의 본문을 지정한 형태로 파싱해주는 미들웨어이다.
Node.js의 웹프레임워크인 Express는 요청을 처리할 때 기본적으로 body를 undefined로 처리한다.
body-parser 미들웨어를 이용하면, request의 body부분을 자신이 원하는 형태로 파싱하여 활용할 수 있다.
body-parser 미들웨어는 Express 4.16.0 버전 이상부터 내장모듈로 포함됐기 때문에 별도로 설치할 필요 없이 활용할 수 있다.

body-parser의 버젼에 따른 설정

Express 4.16 버전 미만일 때 설정

//body-parser 모듈을 불러온다.
const bodyParser = require('body-parser');

app.use(bodyParser.json());	//요청 본문을 json 형태로 파싱
app.use(bodyParser.urlencoded({extended: false}));

Express 4.16 버전 이상일 때 설정

app.use(express.json());
//application/json 형태의 데이터를 분석해서 가져올 수 있게 해준다.
app.use(express.urlencoded({extended: false}));
// application/x-www-form-urlencoded 형태의 데이터를 분석해서 가져올 수 있게 해준다.

json은 말 그대로 JSON 형태의 데이터 전달을 의미하고, urlencoded는 url 형식의 데이터 전달을 의미한다.

{'age':40, 'name':'희동', 'hobby':'게임'} 처럼 json 형태로 값을 전달하면 그대로 request의 body에 값이 추가되고,

url-encoded 형태인 'age=40&name=희동&hobby=게임' 로 값을 전달하면, {'age':40, 'name':'희동', 'hobby':'게임'} 형태로 값이 request의 body에 추가된다.

{extended:false} 부분은 아래와 같이 작동한다.

  • true : Express에 기본 내장된 querystring 모듈을 사용한다.

  • false : querystring 모듈의 기능이 좀 더 확장된 qs 모듈을 사용한다. (qs 모듈 별도 설치 필요)

※ querystring 모듈?

url 주소 뒤에 붙어서 넘어오는 파라미터인 querystring을 쉽게 조작할 수 있는 기능을 제공하는 모듈이다.

body-parser는 json 말고도, 'RAW' 또는 'text'형태도 지원한다.

profile
포기하지 않는 코딩 생활-!

0개의 댓글