[에러 일지] Node.js request body 값이 undefined인 경우

nemo·2022년 2월 21일
0

에러 일지

목록 보기
6/17

클라이언트 단에서는 값이 출력되는데, 서버 단으로 보내면 undefined가 뜨면서 아래와 같은 에러가 발생했다.

TypeError: Cannot read properties of 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 모듈 사용해 쿼리스트링 해석

참고로 body parser를 설치해서 사용했던 기존 방식은 아래와 같다.

const bodyParser = require('body-parser')

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

0개의 댓글