본문 바로가기

컨트롤러 라우팅 / 요청 인자 받기

@정소민fan2025. 6. 14. 17:10
import {Controller, Get} from "@nestjs/common";

@Controller("/app")
export class AppController {

    @Get("/asdf")
    getRootRoute() {
        return "hi there";
    }

    @Get("/bye")
    getByeThere() {
        return "bye there";
    }

}

@Controller 데코레이터의 경로는 상위 라우팅, 클래스 내부 함수들의 데코레이터의 경로는 상위 라우팅 경로의 하위 경로이다.

/app/asdf에 들어가면 hi there이 나오고

/app/bye에 들어가면 bye there이 나옴

 

get을 할 때 조회하고 싶은 정보를 필터링하기 위해 보통 /path/1 이렇게 사용할 수도 있고, /path?page=1 이렇게 사용할 수도 있다. /messages/1에서 1을 와일드카드, 요청 파라미터라고 하는데 이를 추출하고 싶다면

@Get('/messages/:id')
getMessages(@Param('id') id: string){
    console.log(id);
}

이런식으로 사용하자

 

그러면 /messages?page=1 의 ? 뒤의 부분을 쿼리스트링이라고 하는데, 여기서 정보를 추출하고 싶다면

@Get('/messages')
getMessages(@Query('id') id: string){
    console.log(id);
}

 

post 요청에서도 들어오는 데이터를 받아서 사용해야 한다. 그러면 리퀘스트의 body로 들어오는 데이터들은 아래와 같이 가져올 수 있다.

@Post()
createMessages(@Body() body: any) {
    console.log(body);
}

이렇게 받아도 되고 따로 DTO를 만들어서 pipe를 달아 검증하여 사용해도 된다

'NestJS' 카테고리의 다른 글

반환 정보 편집하기  (1) 2025.06.15
입력 정보 검증하기  (0) 2025.06.15
TypeORM 간단 사용법  (0) 2025.06.15
제어 역전 / 의존성 주입  (0) 2025.06.14
nestJS 시작  (2) 2025.06.14
정소민fan
@정소민fan :: 코딩은 관성이야

코딩은 관성적으로 해야합니다 즐거운 코딩 되세요

목차