Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- sequelize
- React
- docker
- node.js
- OOAD
- Kotlin
- linux
- Scheduling
- Android
- python
- css
- TypeScript
- mysql
- DATABASE
- algorithm
- typeorm
- mongoose
- postman
- Network
- S3
- macos
- HTML
- Util
- MongoDB
- Express
- AWS
- ubuntu
- OS
- wireshark
- Crawling
Archives
- Today
- Total
Seongwon Lim
[node.js] Koa-bodyparser 설치 및 사용 방법 본문
반응형
서론
이번 포스팅 글에서는 이전에 구현한 라우팅을 이용해서 API를 구현할 때 발생하는 undefined error 를 해결하는 방법에 대해서 살펴보고자 한다.
익스프레스 환경에서도 req.body에 JSON 데이터를 담아서 보낼 때 undefined 에러가 발생하는 경우가 있었고 이 경우에는 body-parser 모듈을 이용해서 해결했었다. 익스프레스와 달리 코아에서도 코아 환경에서 사용할 수 있는 body-parser 모듈을 제공하고 있는데 설치 방법과 사용법에 대해서 살펴보고자 한다.
모듈 설치하기
- npm install koa-bodyparser --save
사용 방법
const bodyParser = require('koa-bodyparser');
app.use(bodyParser());
모듈을 설치한 후 2줄의 코드를 index.js 파일에 붙여넣으면 된다.
결과 예시
먼저 POST method 코드를 다음과 같이 구현했다.
router.post('', (ctx, next) => {
ctx.response.status = 201;
ctx.response.body = {
name: ctx.request.body.name,
email: ctx.request.body.email,
sex: ctx.request.body.sex
}
});
익스프레스 req.body.name 과 같이 Request Body의 데이터를 정의했다면 코아에서는 ctx.request.body.name과 같이 정의한다.
그리고 포스트맨을 이용해서 다음과 같이 Body를 구성 후 요청을 보냈다.
모듈 설치 전 결과
name 속성이 정의되지 않았다는 오류가 출력된 것을 확인할 수 있다. 모듈을 설치 후 코드를 적용하고 다시 요청을 보내보면?
모듈 설치 후 결과
결과로 JSON 데이터가 잘 들어오는 것을 확인할 수 있다.
출처
'Node.js' 카테고리의 다른 글
[node.js] 라우팅(Routing)의 필요성 (0) | 2022.05.09 |
---|---|
[node.js] 보안을 위한 dotenv 설치 및 사용 방법 (0) | 2022.05.09 |
[node.js] Koa framework 개념 정리 및 사용하기 (0) | 2022.05.09 |
[node.js] Typescript를 이용하여 Express 환경 구성하기 (0) | 2022.05.08 |
[node.js] Typescript에서 Bcrypt를 이용한 비밀번호 암호화 (0) | 2022.05.08 |
Comments