본문 바로가기
  • optimuslee
Nestjs

[Nestjs] 4-1. 프로바이더와 서비스

by OptimusLee 2022. 4. 10.
728x90
반응형

앞장에서 프로바이더가 무엇인지 알아보았고 간단한 서비스를 코드로 작성하였습니다. 이번에는 앞장에서 배운 내용을 토대로 interface, controller, service 그리고 module까지 완성하여 프로바이더가 어떻게 쓰이는지 알아보도록 하겠습니다. 

 

interface

 

 

아래의 service와 controller에서 사용하기 위해 Cats interface를 생성하여 Cats에 대한 name과 age를 쉽게 전달할 수 있게 만들었습니다. 

 

service

 

 

$nest g service cats

 

위의 명령어를 입력하여 cats라는 이름의 service를 생성하였습니다. Castservice 클래스를 @Injectable() 데코레이터로 장식하였습니다. @Injectable() 데코레이터는 메타 데이터를 첨부하여 이 클래스가 Nest provider라는 것을 Nest에게 알려줍니다. create()와 findAll() 메소드를 사용하여 cats에 대한 데이터를 생성하고 조회할 수 있습니다. 

 

controller

 

 

controller는 앞장에서 여러번 언급했듯이, 요청을 받고 그에 상응하는 응답을 반환합니다. 이번에는 앞장에서와 달리 async를 사용하여 비동기 처리를 할 수 있도록 메소드를 작성하였고 Promise 객체를 반환할 수 있도록 타입을 정했습니다. (비동기 처리에 대해서는 나중에 더 자세히 설명하도록 하겠습니다~!)

 

module

 

 

우리는 CatsService라는 이름의 provider를 정의했고, CatsController를 통해 요청과 응답을 반환할 수 있도록 @Module() 데코레이터에 controllers와 providers 배열에 위와 같이 추가해주어야 합니다. 이제는 appModule에서 CatsModule을 불러와서 import 하면 Cats와 관련된 컴포넌트를 사용할 수 있습니다. 

728x90
반응형