게시물 생성하기 (CRUD → C) : Controller
Requset와 Response 처리
- 클라이언트에서 들어오는 Request를 받는 역할과 동시에 클라이언트에게 Response 해주는 곳이 Controller 입니다.
- 작성한 서비스를 클라이언트에서 들어오는 Request를 처리하여 다시 Response 해줄 것입니다.
클라이언트에서 보내온 값(Request) 핸들러에서 가져오는 방법
Express 에서는 Express 내에 내장되어 있는 Parser 모듈을 이용해서 req.body 형태로 클라이언트에서 보내온 값을 받았는데, Nest와는 어떻게 다른지 작성할 것입니다.
1. Express
- Express 는 4.16.0 버전 이후로는 별도로 body-parser 모듈을 설치 하지 않아도 express generator에 내장되어 사용이 가능합니다.
app.use(express.json());
app.post('/', (req, res) => {
console.log(req.body);
});
2. NestJS
- 별도의 모듈을 설치하지 않고 데코레이터로 선언이 가능합니다.
- @Body body 형태로 선언시 requset에서 보내온 값을 모두 가져올 수 있습니다.
@Post()
createBoard(@Body() body) {
console.log('body',body);
}
- 별도로 하나씩 가져올려면 아래와 같이 선언합니다.
@Post()
createBoard(
@Body('title') title: string,
@Body('description') description: string,
) {
console.log('title',title);
console.log('description',description);
}
Controller 와 Service 매핑하기
@Post()
createBoard(
@Body('title') title: string,
@Body('description') description: string,
): Board {
return this.boardsService.createBoard(title, description);
}
코드 풀이
Post 메소드 매핑
- 클라이언트측에서 Post Method로 요청할 경우 다음 함수를 호출합니다.
Request Body값 정의
- Body에 ‘title’ 과 ‘description’ 로 정의된 값이 들어올 경우 뒤에 작성된 변수명과 타입으로 정의합니다.
[Service] createBoard에 데이터 처리 요청 후 Response 하기
- Service 측에 정의한 변수를 보내 데이터 처리 요청을 진행합니다.
- 전달 받은 데이터를 클라이언트측에 Response 합니다.
API 테스트 툴을 이용해 데이터 처리 확인하기
POSTMAN
- 개인적으로 가장 많이 이용하는 REST API 테스트 툴입니다.
- 단점으로는 프로그램이 무거워 종종 킬때 에러가 발생하거나, 렉이 걸린다는게 단점입니다.
VSCode - THUNDER CLIENT
- POSTMAN에서 에러가 발생하면 급한대로 사용하는 VSCode 에서 지원하는 Extension 입니다.
- 가볍고, VSCode에서 바로바로 확인이 가능하다 보니 가볍게 테스트 하기에는 용이합니다.
- 단점으로는 POSTMAN 처럼 다양한 기능일 지원하지 않는다는 것입니다.
'NestJS' 카테고리의 다른 글
DTO(Data Transfer Object) (0) | 2022.03.17 |
---|---|
게시물 생성하기 (Service 부분) (0) | 2022.03.17 |
Board Model 정의하기 (0) | 2022.03.17 |
[실습] Board Module 로직 구현 (0) | 2022.03.16 |
간단하게 알아보는 NestJS Service (0) | 2022.03.16 |