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}`))
'B.E > Node JS' 카테고리의 다른 글
[Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅 (0) | 2022.09.29 |
---|---|
[Node JS] Node.js를 Typescript 프로젝트로 셋팅하기. (0) | 2022.09.29 |
[Node JS] Connection Pool로, Mysql 연결하기 (0) | 2022.05.31 |
[Node JS] 1. API Server 구축하기 - express (0) | 2022.05.27 |
[Node JS] http 모듈 (0) | 2022.05.05 |