B.E/Node JS
[Node JS] Body-parser 사용하기
pinomaker
2022. 8. 21. 12:04
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}`))