Controller

Nest.js의 컨트롤러는 클라이언트의 요청(Request)을 받아 처리한 후 응답(Response)하는 역할을 함

image.png

<aside> 💡

Routing Routing은 클라이언트 요청에 따라 어떤 기능으로 연결할지 결정하고 처리하는 과정

</aside>

Overview

import { Controller, Get, Query, Post, Body, Put, Param, Delete } from '@nestjs/common';
import { CreateCatDto, UpdateCatDto, ListAllEntities } from './dto';

@Controller('cats')
export class CatsController {
  @Post() // 데이터 생성
  create(@Body() createCatDto: CreateCatDto) {
    return 'This action adds a new cat';
  }
  
  @Get() // 전체 데이터 목록 조회
  findAll(@Query() query: ListAllEntities) {
    return `This action returns all cats (limit: ${query.limit} items)`;
  }

  @Get(':id') //  데이터 상세 조회
  findOne(@Param('id') id: string) {
    return `This action returns a #${id} cat`;
  }

  @Put(':id') // 데이터 수정
  update(@Param('id') id: string, @Body() updateCatDto: UpdateCatDto) {
    return `This action updates a #${id} cat`;
  }

  @Delete(':id') // 데이터 삭제
  remove(@Param('id') id: string) { 
    return `This action removes a #${id} cat`;
  }
}

@Controller()

컨트롤러는 @Controller()라는 데코레이터를 사용

@Get()

@Req()

NestJS는 Express를 사용하고 있어, Request 객체 사용 가능