Tech Blog of Pinomaker
Published 2022. 8. 21. 12:04
[Node JS] Body-parser 사용하기 B.E/Node JS

body-parser는 Node.JS의 모듈 중 하나로, 클라이언트가 보내는 Request Data의 Body로부터 파라미터를 편리하게 추출 할 수 있다.

 

method : post
url : http://localhost:8080
data : { id : "admin", pw : "1234" }

 

위의 요청을 처리하는 코드를 짜보자.

const express = require("express")
const app = express()

app.post("/", (req,res) => {
  const {id, pw} = req.body
  console.log(id, pw)
})

const port = 8080
app.listen(port, () => console.log(`SERVER ON PORT : ${port}`))

이렇게 코드를 작성하게 되면, id와 pw에 undefiend가 나오는 것을 알 수 있다.

그 이유는 body-parser를 사용하기 전에는 req.body 값이 undefined로 설정되어있기 때문이다.

 

body-parser를 사용하여 Request data를 처리해보자.

 

먼저 body-parser 모듈을 설치한다.

npm install body-parser

모듈을 불러오고, 미들웨어로 설정하면 문제를 해결 할 수 있다.

const express = require("express")
const bodyParser = require("body-parser")
const app = express()

app.use(bodyParser.json()) // 요청을 JSON으로 파싱
app.use(bodyParser.urlencoded({extended: false})) 

app.post("/", (req,res) => {
  const {id, pw} = req.body
  console.log(id, pw)
})

const port = 8080
app.listen(port, () => console.log(`SERVER ON PORT : ${port}`))

 

번외로 사실 Express에는 body-parser가 포함되어 있어 아래와 같이 사용도 가능하다.

const express = require("express")
const app = express()

app.use(express.json())

app.post("/", (req,res) => {
  const {id, pw} = req.body
  console.log(id, pw)
})

const port = 8080
app.listen(port, () => console.log(`SERVER ON PORT : ${port}`))

 

profile

Tech Blog of Pinomaker

@pinomaker

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!