참고
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);
}