티스토리 뷰

Nest

#1 Nest 와 데코레이터(Decorator)

림디 2024. 12. 4. 08:00

Nest Js 공식 설명
Nest(NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다. 이 프레임워크는 프로그레시브 자바스크립트를 사용하며, 타입스크립트로 구축되어 완벽하게 지원하면서도 개발자가 순수 자바스크립트로 코딩할 수 있도록 하며, OOP(객체 지향 프로그래밍), FP(함수형 프로그래밍), FRP(함수형 반응형 프로그래밍)의 요소를 결합합니다. 내부적으로 Nest는 Express(기본값)와 같은 강력한 HTTP 서버 프레임워크를 사용하며 선택적으로 Fastify도 사용하도록 구성할 수 있습니다! Nest는 이러한 일반적인 Node.js 프레임워크(Express/Fastify보다 추상화 수준이 더 높지만 API도 개발자에게 직접 노출합니다. 따라서 개발자는 기본 플랫폼에서 사용할 수 있는 수많은 타사 모듈을 자유롭게 사용할 수 있습니다. 

nest js cli를 설치 해서 프로젝트를 만들고 사용 할 수 있다.

$ npm i -g @nestjs/cli
$ nest new project-name


데코레이터(Decorator)
ES2016 데코레이터는 함수를 반환하고 대상, 이름 및 속성 설명자를 인수로 받을 수 있는 표현식입니다. 데코레이터 앞에 @ 문자를 붙이고 데코레이터를 적용하려는 대상의 맨 위에 배치하면 됩니다. 데코레이터는 클래스, 메서드 또는 프로퍼티에 대해 정의할 수 있습니다.

자바스크립트의 오브젝트  프로퍼티에 대해서 알고 있으면 원리에 대하여 좀더 쉽게 접근 할 수있다.
참고 설명: 
https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841 

Nest에서 커스텀 route 데코레이터 (Custom route decorators) 예시 1 - Param 

import { createParamDecorator, ExecutionContext } from '@nestjs/common';

export const User = createParamDecorator(
  (data: unknown, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    return request.user;
  },
);


@Get()
async findOne(@User() user: UserEntity) {
  console.log(user);
}


출처:

 

'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
#2 Nest Controller  (1) 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
글 보관함