공급자
공급자는 Nest의 기본 개념입니다. 기본 Nest 클래스의 대부분은 서비스, 리포지토리, 팩토리, 도우미 등 공급자로 취급될 수 있습니다. 공급자의 주요 아이디어 는 종속성 으로 주입 될 수 있다는 것입니다 . 즉, 개체는 서로 다양한 관계를 생성할 수 있으며 개체의 인스턴스를 "연결"하는 기능은 대부분 Nest 런타임 시스템에 위임될 수 있습니다.
import { Injectable } from '@nestjs/common';
@Injectable() //Nest IoC 컨테이너 에서 관리할 수 있는 클래스임을 선언
export class AppService {
getHello(): string {
return 'Hello World!';
}
}
@Injectable()을 통해 nest Ioc 컨테이너 등록
@Module({
imports: [],
controllers: [AppController], // 주입 받을 객체
providers: [AppService], //주입할 객체
})
모듈에서 providers랑 controllers 설정
@Controller('cats')
export class AppController {
constructor(private readonly appService: AppService) {} //AppService 주입
@Get('hello/:id/:name')
getHello(@Req() req: Request, @Body() Body, @Param() Param): string {
Logger.log(req);
Logger.log(Param);
return this.appService.getHello();
}
}
constructor(private readonly appService: AppService) {} -> 의존성 주입
scope
공급자는 일반적으로 애플리케이션 수명 주기와 동기화된 수명("범위")을 갖습니다. 응용 프로그램이 부트스트랩되면 모든 종속성을 해결해야 하므로 모든 공급자를 인스턴스화해야 합니다. 마찬가지로 응용 프로그램이 종료되면 각 공급자가 소멸됩니다. 그러나 공급자 수명을 요청 범위 로 만드는 방법 도 있습니다. 여기에서 이러한 기술에 대한 자세한 내용을 읽을 수 있습니다 .
'node.js' 카테고리의 다른 글
Nest.js - 미들웨어 (0) | 2022.08.20 |
---|---|
Nest.js - 모듈 (0) | 2022.08.20 |
Nest js - 개발 환경 셋팅 & Controller (0) | 2022.08.20 |
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. (0) | 2022.08.01 |
node.js 설치 (0) | 2022.07.26 |