Providers & 의존성 주입 (DI)

gwanhun·2023년 3월 28일
0

NestJs

목록 보기
2/2
post-custom-banner

Providers

프로바이더는 Nest의 기본 개념입니다. 대부분의 기본 Nest 클래스는 서비스, 리포지토리, 팩토리, 헬퍼등 프로바이더로 취급될 수 있습니다. 프로바이더의 주요 아이디어는 종속성으로 주입할 수 있다는 것입니다. 즉, 객체는 서로 다양한 관계를 만들 수 있으며 객체의 인스턴스를 "연결"하는 기능은 대부분 Nest 런타임 시스템에 위임될 수 있습니다.

app.module.ts
@Module({
imports: [],
controllers: [AppController],
providers: [AppService], //AppService는 공급자로 취급된다
})
/////////////////////////////
app.service.ts
@Injectable()//공급자로 취급이 되어있는 것은 의존성 주입이 가능하다
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}
/////////////////////////////
app.controller.ts
@Controller('cats')
export class AppController {
  constructor(private readonly appService: AppService) {} //인스턴스로 받아 사용할 수 있다.
//* localhost:8000/cats/hello
  @Get('hello/:id/:name')
  getHello(
    @Req() req: Request,
    @Body() Body,
    @Param() param: { id: string; name: string },
  ): string {
    // console.log(req);
    // console.log(param);
    // return 'hello world';
    return this.appService.getHello();//인스턴스로 받아 사용할 수 있다.
  }
}
profile
주니어 백앤드 개발자
post-custom-banner

0개의 댓글