[NestJS] Controllers

참고

  1. NestJS Controllers

Controller 란

클라이언트로 부터의 request를 처리하고 response를 반환하는 역할을 수행한다.

생성

컨트롤러 only

아래 명령어를 통해 간단하게 컨트롤러 파일을 생성할 수 있다.

nest g controller <name>

name 부분에 trees를 넣어 실행하면 생성된 trees.controller.ts 파일은 아래와 같다.

import { Controller } from '@nestjs/common';

@Controller('trees')
export class TreesController {}

CRUD 컨트롤러 및 관련파일

아래 명령어를 통해 CRUD 코드가 구현된 컨트롤러 및 관련 파일들을 생성할 수 있다.

nest g resource <name>

name 부분에 trees를 넣어 실행하면 생성된 trees.controller.ts 파일은 아래와 같다. 이외에도 trees.service.ts, trees.module.ts, dto/create-tree.dto.ts, dto/update-tree.dto.ts, entities/tree.entity.ts 파일이 생성된다.

import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { TreesService } from './trees.service';
import { CreateTreeDto } from './dto/create-tree.dto';
import { UpdateTreeDto } from './dto/update-tree.dto';

@Controller('trees')
export class TreesController {
  constructor(private readonly treesService: TreesService) {}

  @Post()
  create(@Body() createTreeDto: CreateTreeDto) {
    return this.treesService.create(createTreeDto);
  }

  @Get()
  findAll() {
    return this.treesService.findAll();
  }

  @Get(':id')
  findOne(@Param('id') id: string) {
    return this.treesService.findOne(+id);
  }

  @Patch(':id')
  update(@Param('id') id: string, @Body() updateTreeDto: UpdateTreeDto) {
    return this.treesService.update(+id, updateTreeDto);
  }

  @Delete(':id')
  remove(@Param('id') id: string) {
    return this.treesService.remove(+id);
  }
}

사용

POST

POST의 경우 성공시 response의 status code는 201이 반환된다. @HttpCode(...) 코드를 추가하여 변경할 수 있다.

@Post()
@HttpCode(200)
create(@Body() createTreeDto: CreateTreeDto) {
  return this.treesService.create(createTreeDto);
}

links

social