NestJS Controller란?

Olivia·2023년 8월 7일
0

[NestJS]

목록 보기
3/11
post-thumbnail

NestJS의 Controller란?

NestJS에서 Controller는 HTTP Request(요청)을 받아서 처리하고, Client에게 Response(응답)을 반환한다.

위의 사진을 참고하면 해당 request에 맞춰 해당 요청에 알맞은 Controller를 실행한다.

Controller는 @Controller로 클래스를 데코레이션하여 정의하고, 인자로 경로를 받는다.

아래의 경우, user에서 사용하는 Controller임을 정의하는 것이다.

@Controller(user)
export class UsersController {
	@Get()
  	getUsers():string{
    	return `user list`
    }
}

위의 코드 중 @Get()이라고 되어있는 부분이 있는데, 이것을 Handelr라고 한다.

Handler

Handler는 @Get, @Post, @Put, @Delete등 데코레이션으로 되어있는 Controller 클래스 내부에 있는 메소드이다.
예를들어, Controller 안에서 유저 리스트 가져오기, 유저 디테일 가져오기, 유저 생성,
유저 정보 수정, 유저 정보 삭제
와 같은 핸들러가 있는데, 이 핸들러를 사용할때 @Http메소드로 작성해준뒤 인자로 경로를 보내줄 수 있다.

// 유저 디테일의 경우
@Get('/id')
getUserById(
	...
)

정리 Ꙭ̮

브라우저에서 요청을 받아오면, Controller에서 요청 경로에 따라서 해당 요청에 해당하는 핸들러로 처리를 한뒤 브라우저에게 다시 response를 보내주는 역할을 하는 것을 Controller라고 한다.


Controller 생성 방법

모듈을 생성할때처럼 Controller 역시 명령어로 생성한다.

1. Controller 생성 명령어 입력

nest g Controller 이름 --no-spec or nest g Controller 이름

터미널에 위의 명령어를 입력하면 생성된다.
여기서 각각 의미하는 걸 알아보자면,

  • nest : nest Cli를 사용해서
  • g : generate 만든다.
  • Controller : Controller 만든다
  • 이름 : 해당 이름을 가진
  • --no-spec : 테스트하는 부분을 생성하지 않는다. (test 부분을 생성할 경우 생략해도 된다)
    nest Cli를 이용해서 + 만든다 + Controller를 + [이름] 이름으로 된

2. Controller가 만들어지는 순서

1️⃣ 명령어를 통해
2️⃣ 해당 폴더 안에 Controller가 생성되면
3️⃣ 자동적으로 해당 폴더.module.ts이 생성된다.
4️⃣ 그리고 그 폴더에다가 Controller가 등록되어 사용할 수 있도록 해준다.

import { Module } from '@nestjs/common';
import { UsersController } from './users.controller';

@Module({
  controllers: [UsersController],
})
export class UsersModule {}
profile
👩🏻‍💻

0개의 댓글