</>
⌕
Junior #module#provider#controller

Module, Provider và Controller trong NestJS khác nhau thế nào?

⚡ Trả lời nhanh

Controller nhận request và trả response; Provider (thường là service, gắn @Injectable) chứa logic và được inject; Module (@Module) gom controller/provider lại và quyết định cái gì được export cho module khác dùng.

Thành phầnVai tròDecorator
ControllerĐịnh tuyến, nhận request, gọi service@Controller()
ProviderLogic, repository, factory, helper@Injectable()
ModuleĐơn vị đóng gói, khai báo dependency graph@Module()
@Injectable()
export class CatsService { findAll() { return []; } }

@Controller('cats')
export class CatsController {
  constructor(private readonly cats: CatsService) {}
  @Get() list() { return this.cats.findAll(); }
}

@Module({
  controllers: [CatsController],
  providers: [CatsService],
  exports: [CatsService], // cho module import CatsModule dùng
})
export class CatsModule {}
🃏 Ôn bằng flashcard