컨트롤러는 requset를 처리하고 response를 반환한다.
cats.controller.ts
import { Controller, Get } from '@nestjs/common';
// api 공통 엔드포인트
@Controller('cats')
export class CatsController {
// api 세컨드 엔드포인트
@Get('all')
findAll(@Req() req: Request): string {
return this.appService.getHello();
}
@Post('nyan')
bringMeHome(@Req() req: Request, @Body() adoptCatDto: AdoptCatDto ): string {
return this.appService.getHello();
}
}
NestJS에선 컨트롤러를 만들 때 CLI를 이용하여 간편하게 만들 수 있다.
nest g controller cats
이런 여러 다양한 응답객체들을 데코레이터를 사용하여 손쉽게 이용할 수 있다.
@Request(), @Req() req
@Response(), @Res()* res
@Next() next
@Session() req.session
@Param(key?: string) req.params/req.params[key]
@Body(key?: string) req.body/req.body[key]
@Query(key?: string) req.query/req.query[key]
@Headers(name?: string) req.headers/req.headers[name]
@Ip() req.ip
@HostParam() req.hosts
또한 상태코드도 쉽게 변경할 수 있다.
@Post()
@HttpCode(204)
create() {
return 'This action adds a new cat';
}
그 외에 많은 것들을 docs에서 확인할 수 있다.
예시)