본문 바로가기
  • optimuslee
Nestjs

[Nestjs] 3-1. 라우팅, 요청, 그리고 응답

by OptimusLee 2022. 3. 28.
728x90
반응형

우리는 이전 장에서 서버를 구동시키고 어떻게 controller를 생성해서 작동시키는지 알아보았습니다. 오늘은 controller의 기능을 활용하여 요청을 받고 응답을 반환해보는 실습을 진행해보겠습니다. 

 

 

"라우팅"이란 우리가 원하는 데이터를 근원지에서 목적지까지 보내거나 받아오는 것을 일컫는 말입니다. 그렇기에 정확한 주소와 데이터 양식을 알고있어야 원하는 정보를 서버로부터 받아올 수 있을 것입니다. 말로 설명하는 것보다 같이 보는 게 더 이해가 잘 되실 겁니다. 아래의 코드를 살펴봐주세요~!

 

 

 

 

CatsController 클래스 내부에 findAll이라는 메서드를 만들어 주었습니다. 그리고 string 타입으로 "The action return all cats" 이라는 문구를 반환할 수 있도록 만들어주었습니다. 그리고 우리가 만든 함수 위에 @Get() 데코레이터를 관찰할 수 있을 것입니다.

 

@Get() 데코레이터는 서버 입장에서보면 데이터를 client에게 전달해주겠다는 뜻입니다. 사용자가 정해진 주소로 요청을 보내면 서버는 그 요청에 응답하여 데이터를 반환합니다. 우리가 작성한 코드를 기준으로 보면 "cats"에 대한 정보를 받기 위해선 @Controller("cats")로 기본적인 경로를 정했기에 url 경로에 /cats를 붙여주시면 됩니다. 그리고 @Get() 데코레이터 안에 "all"있기에 마지막으로 "all"을 붙여주시면 됩니다. 저는 코드샌드박스로 작성했기에 주소가 다르지만 여러분들이 만약 local 환경에서 서버를 구현 중이라면  ✔http://localhost:3000/cats/all로 요청하면 원하는 데이터가 전달되는 것을 볼 수 있을 겁니다.

 

CRUD 시스템을 만들기 위해선 @Get() 말고도 @Post(), @Put(), @Patch(), @Delete() 등이 더 있습니다. 여기서 다루지 않은 데코레이터에 대해서는 실습과 동시에 뒷장에서 다뤄보도록 하겠습니다. 

 

또한 @Param() 데코레이터가 findOne() 메서드에 사용된 것을 확인할 수도 있습니다. 이는 url로 정보가 넘어올 때 id 부분이 숫자인 것을 확인하고 해당 데이터를 client에게 넘겨줄 수 있게 도와줍니다.

 

예를 들어서  ✔http://localhost:3000/cats/123  로 요청을 보내면 "This action returns one cats"이라는 응답을 받을 수 있습니다. 이 밖에 @Body(), @Query() 등을 사용해서 client로부터 server로 들어오는 정보를 손쉽게 사용할 수 있습니다. (추후에 다뤄보도록 할게요~!!

 

마지막으로 findMusical메서드를 작동시켜 원하는 응답을 얻으려면 어떤 주소로 요청을 보내야할까요? 위의 보기들을 이해하셨다면 쉽게 답을 찾을 수 있을 것입니다. ✔http://localhost:3000/cats/musical 로 요청을 하면 됩니다. 그러면 "This action returns musical"을 응답으로 받을 수 있습니다. 

728x90
반응형

'Nestjs' 카테고리의 다른 글

[Nestjs] 3-3. 라우터 파라미터  (0) 2022.04.02
[Nestjs] 3-2. CRUD 시스템  (0) 2022.04.02
[Nestjs] 3. Controller??  (0) 2022.03.27
[Nestjs] 2-3. Typescript와 인터페이스  (0) 2022.03.26
[Nestjs] 2-2. TypeScript와 함수  (0) 2022.03.26