Express에서 post호출 시 request의 body에서 undefined가 발생한다.
다음과 같이 호출 했는데 결과가 undefined일 경우는 body-parser를 설정하지 않아서 이다.
# post 호출시, body에 {test:'hello"} 를 함께 전송
#router 소스
router.post('/', (req, res) => {
console.log(req.body); undefined 발생
res.redirect('/');
});
처리 방법은 body-parser를 express에서 사용하도록 설정 하면된다.
# body-parser 설치
$> npm install --save body-parser
#app.js 소스
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser().json()); //bodyparser 사용 설정
이후 만나는 문제는 body의 크기가 크다는 오류를 만난 수 있다. 이때는 body의 크기를 옵션 설정하면 된다.
const bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'})); //body 의 크기 설정
app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); //url의 크기 설정
추가로 express 4.16부터는 body-parser를 포함 하고 있다.
const express = require('express')
const app = express();
app.use(express.json())
app.post('/', (req, res) => {
console.log(req.body)
})
알아두자
참고 자료
'NodeJS' 카테고리의 다른 글
nodejs에서 request Body에 json 처리 & body 크기 제한 (0) | 2019.02.06 |
---|---|
Node 모듈 설치시 오류시 해결 방법 (0) | 2019.02.06 |
pm2 cluster mode 특징 (0) | 2019.02.06 |
Vuejs를 express로 배포 후 vuejs route 동작 처리 (0) | 2019.02.06 |
How To Use Winston to Log Node.js Applications (0) | 2019.02.06 |
이번에 진행한 refactoring 코드 일부 공유 (0) | 2019.02.06 |