Node.js ValidationError

정성현·2022년 5월 21일
0

항해99

목록 보기
25/33

문제

const {quantity} = req.body의 값이 계속 없다고 요청이 들어오는 오류가 계속 일어났다. put으로 수신시 req의 body가 계속 undefined가 떴고 값이 어떻게 들어오는지 확인하기 위해 디버그를 하였다. 값 자체가 안들어오는 왔고 HTML에서 코드를 잘못 썼는지도 확인 하였지만...아무 문제가 없었다...결국 구글링 끝에 body-parser이라는 것을 찾게 되었다.

문제 해결

undefined으로 값이 전달된 이유 : 전달된 body 값이 읽을 수 없는 형태이기 때문에 발생하는 이슈다. 이를 해결하기 위해서는 body의 값을 읽을 수 있는 형태로 파싱(추출)해야 한다.

이 때 사용하는 게 body-parser라는 모듈인데, express 4.x 부터는 내장되어 있어 따로 설치하지 않아도 된다. 다만 다음 코드를 추가해야한다.

app.use(express.json());
app.use(express.urlencoded({extended : false})

URL-encoded는 주소 형식으로 데이터를 보내는 방식이다.

  • extended: false : querystring 모듈 사용해 쿼리스트링 해석
  • extended: true : qs 모듈 사용해 쿼리스트링 해석
profile
I want to be programmer

0개의 댓글