Nest에서 Provider란 의존성을 주입해주는 공급자를 의미한다.
그림과 같이 컨트롤러에 의존성을 주입해주는 여러 컴포넌트들과 팩토리가 공급자라고 할 수 있다.
cats.service.ts
import { Injectable } from '@nestjs/common';
import { Cat } from './interfaces/cat.interface';
@Injectable()
export class CatsService {
private readonly cats: Cat[] = [];
create(cat: Cat) {
this.cats.push(cat);
}
findAll(): Cat[] {
return this.cats;
}
}
이런 하나하나의 서비스들 또한 공급자라고 할 수 있다.
공급자(CatsService)가 소비자(CatsContoller)에게 의존성 주입을 하기 위해서는 아래와 같이 모듈에 등록해주어야 한다.
app.module.ts
import { Module } from '@nestjs/common';
import { CatsController } from './cats/cats.controller';
import { CatsService } from './cats/cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class AppModule {}