Controller의 목적은 특정 요청을 수신하는 것이다. 라우팅 메커니즘은 어떤 컨트롤러가 어떤 요청을 받는지 제어한다.
기본 Controller를 만들기 위해 클래스와 데코레이터를 사용한다.데코레이터는 클래스를 필수 메타데이터와 연결하고 Nest가 라우팅 맵을 생성할 수 있게 한다.
Routing
@Controller() 데코레이터를 사용한다.
// user.controller.ts
import { Controller, Get } from '@nestjs/common';
@Controller('user')
export class CatsController {
@Get('findUser') // 경로 지정 /user/findUser
findAll(): string {
return 'This action returns all cats';
}
}
// Controller만 사용하려면 $ nest g co || controller user
Rout parameters
동적 데이터를 받아야하는 경우 정적 경로가 있는 경로는 작동하지 않는다.
매개변수로 경로를 정의하기 위해 경로에 매개변수 토큰을 추가하여 요청 URL의 해당 위치에서 동적 값을 캡처할 수 있다.
@Param() 데코레이터를 사용해보자. 이는 메서드 매개변수에 사용되며 매개변수를 메서드 본문 내 메서드 매개변수의 속성으로 사용할 수 있게 한다.