[1분 패키지 소개] : body-parser를 소개합니다. 하지만, body-parser를 쓰지 마세요.
.
body-parser는 node.js 모듈입니다.
클라이언트 POST request data의 body로부터 파라미터를 편리하게 추출합니다.
.
body-parser가 없을 때의 문제점 : undefined
저는 다음과 같은 데이터를 body에 담아 POST request 를 보내고자 합니다.
{
userID : "힝",
password : "나도몰라"
}
서버단에서 express를 써서 POST request를 처리하는 방법은 다음과 같습니다.
var express = require('express')
var app = express()app.post('/profile', function(req, res) => {
console.log(req.body)
})
그런데, 위 코드 기준 5번째 줄 console.log(req.body) 라인에서 undefined Error를 마주하게 됩니다.
req.body는 body-parser를 사용하기 전에는 디폴트 값으로 Undefined이 설정되기 때문입니다. (출처: Express Docs)
.
해결방안은 body-parser입니다.
.
body-parser를 설치합니다.
npm install body-parser
모듈을 불러오고, express에 붙여 사용합니다.
var express = require('express')
var bodyParser = require('body-parser')var app = express();
app.use(bodyParser().json())app.post('/profile', function(req, res) => {
console.log(req.body)
})
이제는 body의 userId값과 password를 읽어낼 수 있습니다.
.
한 걸음 더
.
express.js도 빌트인 body parser를 넣었다는 점을 알게 되었습니다.(Express v4.16.0 기준)(출처: Express Docs)
그래서 다음과 같이 써도 문제는 해결됩니다.
.
var express = require('express')
var app = express();
app.use(express.json())app.post('/profile', function(req, res) => {
console.log(req.body)
})
.
Express 쓸 때, 바디 파서를 따로 임포트하지 않아도 된다는 점, 기억해두세요!
.
그럼 이만 안녕히 계세요. 개발자 chullin이었습니다. 궁금하신 점들과 어려운 내용들은 댓글로 해결해주시면 좋겠습니다. 도움이 되신 분들로부터의 Clap은 큰 힘이 됩니다!