Providers

생성일
Dec 19, 2021 07:46 AM
태그
nextjs
프로바이더는 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...