[express] req.body에 접근하기

·2022년 9월 25일
0

개발 기록

목록 보기
27/68

로그인 기능을 구현하는 중이다.
클라이언트에서 요청에 사용자의 아이디와 비밀번호를 담아서 보내고 그 값들을 읽어야 하는데 접근이 안됐다. 자꾸 undefined가 반환됐다.

 axios.post(
   	'http://localhost:8080/auth/login',
   	{
       username: '아이디', 
       password: '비밀번호',
	});

분명 이렇게 보내고

app.post('/auth/login', (req, res) => {
  const { username, password } = req.body;
}

이렇게 조회를 하는데 undefined가 나와서 공식 문서를 확인했더니 바로 읽을 수 없고 미들웨어가 필요했다.

req.body의 기본 값으로 undefined가 설정되어 있다고 한다.

var express = require('express')

var app = express()

app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

app.post('/profile', function (req, res, next) {
  console.log(req.body)
  res.json(req.body)
})

공식 문서 예시를 가져왔다. 필요한 미들웨어는 express.json()express.urlencoded() 두 가지이다.

  • express.json() : application/json의 Content-Type에 대해 파싱해주는 역할을 한다.
  • express.urlencoede() : application/x-www-form-urlencoded의 Content-Type에 대해 파싱해주는 역할을 하며 extended옵션에 따라 다른 라이브러리를 사용한다.
    출처

................http 공부를 더 해야겠다.

참고자료

0개의 댓글