본문 바로가기
블록체인/WEB3 개발

req.body가 undefined라면 express 미들웨어 body-parser 모듈을 확인하세요!

by 제이제이_은재 2022. 8. 30.
반응형

 

💡 Express 미들웨어 body-parser 

 

bodyParser 모듈 없이는 post, put 요청 메소드의 req.body를 읽어올 수 없다. body 데이터를 읽기 위해서는 이 모듈을 이용해야 한다.

 

Parser란 가지고 있는 데이터를 내가 원하는 형태의 데이터로 가공하는 과정인 parsing을 수행하는 모듈 혹은 메소드를 일컫는 말이다. 원하는 형식에 맞춰서 해석하는 용도인데 bodyParser말고도 cookieParser, JSON.stringify 등 파서의 종류는 셀 수 없이 많다. 

 

더보기

Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is populated when you use body-parsing middleware such as body-parser and multer.

 

express 문서에 다르면 이 미들웨어 없이 req.body 에 접근하는 경우에는 기본으로 undefined로 설정되기 때문에 body-parser나 multer 같은 미들웨어를 사용하여 요청 데이터 값에 접근해야 한다고 나와있다. 그것도 모르고 계속해서 console 찍어본 나,,

 

 

클라이언트에서 post, put 메소드로 서버한테 요청시 (get, delete는 불가) 서버가 그대로 읽을 수 있는 것이 아니라 서버 내에서 읽을 수 있는 형태로 가공해야 서버가 그 값을 사용할 수 있게 되는 것이었다.

 

 

 💻 설치하기

npm i body-parser

 

위 명령어로 body-parser를 설치한 후 앱, 라우트 등 원하는 레벨에서 연결시켜주면 된다.

 

var express = require('express')
var bodyParser = require('body-parser')
 
var app = express()
 
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
 
// parse application/json
app.use(bodyParser.json())

 

나는 아래와 같이 연결해주었다.

 

 

🖍 결과

원하는 데이터 잘 받아오는 거까지 확인 완료!

반응형

댓글