로그인 기능을 구현하는 중이다.
클라이언트에서 요청에 사용자의 아이디와 비밀번호를 담아서 보내고 그 값들을 읽어야 하는데 접근이 안됐다. 자꾸 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 공부를 더 해야겠다.