NestJS 데코레이터

유지토·2023년 7월 19일

@Query()

HTTP 요청의 쿼리 매개변수를 추출하는 데 사용한다.
예를 들어 http://example.com?name=John과 같은 요청이 있을 때 @Query('name')은 name이라는 쿼리 매개변수의 값을 추출한다.

@Param()

경로 매개변수를 추출하는 데 사용한다.
경로 매개변수는 라우트의 경로에서 변수 부분으로 지정된 값을 나타낸다.
예를 들어 /users/:id와 같은 경로에서 id는 경로 매개변수이다.

@Body()

HTTP 요청의 본문(body) 데이터를 추출하는 데 사용된다.
주로 POSTPUT 요청과 함께 전송되는 데이터를 가져올 때 사용한다.

@Post()
createUser(@Body() userData: CreateUserDto) {
  // userData는 HTTP 요청의 본문 데이터를 담고 있는 객체입니다.
  // ...
}

HTTP 요청의 헤더(header) 정보를 추출하는 데 사용된다.

@Get()
getUser(@Headers('authorization') token: string) {
  // authorization 헤더에서 토큰 값을 추출합니다.
  // ...
}

@Injectable()

클래스를 NestJS의 의존성 주입 시스템에 등록하는 데 사용된다. 이를 통해 클래스의 인스턴스를 필요한 곳에 주입 받을 수 있다.

예를 들어 Service 클래스를 생성하고 주입 받을 때 @Injectable() 데코레이터를 사용한다.

@Injectable()
export class UserService {
  // ...
}

@Controller

클래스를 NestJS 컨트롤러로 지정한다. 컨트롤러는 라우팅 로직을 정의하고, 해당 경로로 들어오는 요청을 처리하는 역할을 한다.

@Controller('users')
export class UserController {
  // ...
}

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

정말 잘 읽었습니다, 고맙습니다!

답글 달기