클라이언트 단에서는 값이 출력되는데, 서버 단으로 보내면 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 } ));