- 컨트롤러는 들어오는 요청을 처리하고 클라이언트에 응답을 반환하는 역할을 한다.
- 컨트롤러의 목적은 애플리케이션에 대한 특정 요청을 수신하는 것이다.
- Routing 메커니즘은 어떤 컨트롤러가 어떤 요청을 수신하는지 제어한다. 종종 각 컨트롤러에는 둘 이상의 경로가 있으며 다른 경로는 다른 작업을 수행할 수 있다.
- 기본 컨트롤러를 만들기 위해
클래스
와데코레이터
를 사용한다. 데코레이터는 클래스를 필수 메타데이터와 연결하고 Nest가Routing Map
을 생성할 수 있도록 한다.(요청을 해당 컨트롤러에 연결).
nest g resource [name] 명령어를 이용하여 빠르게 컨트롤러를 생성할 수 있다.
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'This action returns all cats';
}
}
@Controller('cats')는 하위 모든 메소드가 cats를 prefix로 갖는 컨트롤러를 의미
@Get()는 HTTP 메소드 GET 요청을 처리하는 핸들러 메소드하는 뜻이고 @Get('image')와 같이 하위 경로를 표현할 수 있음
findAll()은 메소드를 선언하기 위한 이름일 뿐 어떤 이름을 사용하던지 상관 없음