프로바이더는 Nest의 기본 개념이다. 대부분의 Nest 클래스는 서비스, 레포지토리, 팩토리, 헬퍼등 프로바이더로 취급될 수 있다. 프로바이더의 주요 아이디어는 송속성을 주입할 수 있다는 것이다.
즉 객체는 서로 다양한 관계를 만들 수 있으며 객체의 인스턴스를 ‘연결’하는 기능은 대부분 Nest 런타임 시스템에 위임될 수 있다.
Service
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;
}
}
controller.ts
import { Controller, Get, Post, Body } from '@nestjs/common';
import { CreateCatDto } from './dto/create-cat.dto';
import { CatsService } from './cats.service';
import { Cat } from './interfaces/cat.interface';
@Controller('cats')
export class CatsController {
constructor(private catsService: CatsService) {}
@Post()
async create(@Body() createCatDto: CreateCatDto) {
this.catsService.create(createCatDto);
}
@Get()
async findAll(): Promise<Cat[]> {
return this.catsService.findAll();
}
}
CatService는 클래스 생성자를 통해 주입된다.
Loading Comments...