티스토리 뷰

Nest

#2 Nest Controller

림디 2024. 12. 4. 08:30

Nest의 컨트롤러는 MVC 패턴에서 말하는 컨트롤러와 같습니다.
컨트롤러의 목적은 애플리케이션에 대한 특정 요청을 수신하는 것입니다. 라우팅 메커니즘은 어떤 컨트롤러가 어떤 요청을 수신하는지 제어합니다. 각 컨트롤러에는 두 개 이상의 경로가 있는 경우가 많고, 다른 경로는 다른 작업을 수행할 수 있습니다.

Nest는 모든 표준 HTTP 메서드에 대한 데코레이터를 제공합다:
@Get(), @Post(), @Put(), @Delete(), @Patch(), @Options(), @Head().
또한 @All()은 이 모든 것을 처리하는 엔드포인트를 정의합니다.

import { Controller, Get, Post } from '@nestjs/common';

@Controller('Dog')
export class DogsController {
  @Post()
  create(): string {
    return 'This action adds a new dog';
  }

  @Get()
  findAll(): string {
    return 'This action returns all dogs';
  }
}

 

패턴 기반 경로
예를 들어, 별표는 와일드카드로 사용되며 모든 문자 조합과 일치합니다.

@Get('ab*cd')
findAll() {
  return 'This route uses a wildcard';
}


상태 코드 
@HttpCode(...) 데코레이터를 추가하면 이러한 동작을 쉽게 변경할 수 있습니다.

@Post()
@HttpCode(201)
create() {
  return 'Something';
}


헤더
사용자 지정 응답 헤더를 지정하려면 @Header() 데코레이터나 라이브러리별 응답 객체를 사용하고 res.header()를 직접 호출할 수 있습니다.

@Post()
@Header('Cache-Control', 'no-store')
create() {
  return 'This action Something';
}

 

Redirection
응답을 특정 URL로 리디렉션하려면 @Redirect() 데코레이터나 라이브러리별 응답 객체를 사용할 수 있습니다(그리고 res.redirect()를 직접 호출).
@Redirect()는 url과 statusCode라는 두 개의 인수를 사용하며, 둘 다 선택 사항입니다. 생략하면 statusCode의 기본값은 302(발견됨)입니다.


컨트롤러는 항상 모듈에 속하므로 @Module() 내에 컨트롤러 배열을 포함합니다.

import { Module } from '@nestjs/common';
import { SomeController } from './some/some.controller';

@Module({
  controllers: [SomeController],
})
export class AppModule {}



출처:
https://docs.nestjs.com/controllers

'Nest' 카테고리의 다른 글

#6 Nest Gateway  (0) 2024.12.06
#5 Nest 모듈 (Module)  (1) 2024.12.05
#4 Nest 커스텀 프로바이더  (0) 2024.12.05
#3 Nest 프로바이더(Provider)  (0) 2024.12.04
#1 Nest 와 데코레이터(Decorator)  (0) 2024.12.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함