-
005_NestJS_NestJS CLI를 사용한 Controller 만들기> Backend/NestJS 2022. 5. 16. 13:42
이제는 Controller를 만들어보도록 하겠습니다.
terminal에 "nest generate controller messages/messages --flat"를 입력해봅니다.
해당 명령어를 까보면, 아래와 같이 설명할 수 있다.
1. nest generate : 기본적인 생성 명령어
2. controller: nestcli를 사용해 만들 클라스
3. messages/... : messages폴더 안
4. messages/messages: messages 폴더 안에 messages라는 클라스를 만듦
5. --flat: controllers라는 디렉터리/폴더를 추가로 만들지 않는다. (안붙여도 되지만, 그렇게되면 추가적으로 controllers라는 폴더가 생성됨)이제, Controller를 본격적으로 한번 만들어 봅시다.
우선, Controller에는 아래와 같이 3가지 하위 controller를 만들어봅시다.
각 controller는 각각 전체 보기/메시지 넣기/특정메세지 보기로 만들 예정입니다.
이후, nestjs/common에서 Get 과 Post를 import하고 decorator를 설정해줍니다.
위에 보시면,
여기서 주목해봐야할 것은,
1. Decorator 입니다.
2. /:id
1번의 경우, Controller Decorator는 @Controller('messages') 라고 되어있고, 3번째 하위 Controller인 getMessage는 @Get('/:id')라고 설정되어있는데, getMessage()를 활용하기위해서는 localhost:3000/messages/id값을 사용하면 됩니다.
"@Controller 데코레이터를 클래스에 선언하는 것으로 해당 클래스는 컨트롤러의 역할을 하게 됩니다. 또한, @Get 데코레이터를 가지고 있습니다. 그리고 다른 루트 경로로 요청을 보내면 404 Not found 에러를 만나게 됩니다."
2번의 경우, /:id 에서 :id라는 wildcard를 활용해서, 이후 오는 값은 어떤 값이라도 될 수 있다는 것을 명시해줍니다.
단 이때, localhost:3000/messages/123321 일경우, 아래와 같이 값이 넘어져 옵니다. 해당 부분을 __ //_ // * 등 목적에 따라 다양한 방법을 사용할 수 있지만, 해당 부분은 구글링해서 찾아보도록 합시다.
{
id: 123321
}
이제, 넘겨져오는 데이터에대해 Pipes를 통해 유효성 검사를 진행해봅시다.
참조: https://wikidocs.net/148197
'> Backend > NestJS' 카테고리의 다른 글
007_NestJS_Service 와 Repository (0) 2022.05.18 006_NestJS_Pipes를 활용한 Validation Check (0) 2022.05.16 004_NestJS_BasicSetup(using NestCLI) (0) 2022.05.16 003_NestJS_Scratch (0) 2022.05.16 002_NestJS_setup(without using NestCLI) (0) 2022.05.16