https://docs.nestjs.com/providers
Providers
- 프로바이더는 네스트의 기본적인 컨셉이다.
- 많은 기본 네스트 클레스들이 프로바이더(서비스, 레포지토리, 팩토리, 헬퍼 등등) 로 취급된다.
- 프로바이더의 기본 아이디어는 그것이 의존성을 주입할 수 있다는 것이다.
- 이것은 오브젝트들이 서로 다양한 관계를 만들수 있음을 의미한다.
- 그리고 instances of Objects "wiring up" 기능은 네스트의 런타임 시스템에 largely be delegated 될 수 있습니다.
- 이전 쳅터에서느 우리는 간단한
CatsController
를 만들었습니다.
- 컨트롤러는 HTTP request를 처리해야 하며, 더 복잡한 일은 provider 에게 위임해야 합니다.
- 프로바이더는 plain JS class 이며
module
에 providers
로 선언되어 있습니다. (declared as providers
in module
)
HINT : 네스트를 사용하면 보다 OO-way(OOP 와 비슷한 의미) 로 종속성을 설계하고 디자인 할 수 있으므로 SOLID 원칙을 따르는 것이 좋습니다.
Dependency Injection
- 네스트에서, 타입스크립트 덕분에, 매우 쉽게 디펜던시를 매니지 할 수 있게 되었습니다. (그것이 단지 타입으로 resolved 되기 때문에)
- 아래 예 처럼, 네스트는
catService
를 생성하고, 그 인스턴스를 리턴하여 resolve 할 것입니다.
- (아니면, 평소 싱글톤 케이스처럼, 이미 만들어진 인스턴스를 리턴 할 것입니다.)
- This dependency is resolved and passed to your controller's constructor (또는 표시된 속성에 할당됨)
constructor(private catsService: CatsService) {}
Scopes