커스텀 라우트 데코레이터 Nest는 데코레이터로 불리는 언어 기능으로 구축되었습니다. 데코레이터는 프로그래밍 언어에서 흔히 사용되는 잘 알려진 개념입니다. 그러나 자바스크립트 세계에서는 상대적으로 새롭습니다. 파라미터 데코레이터 Nest는 HTTP 라우트 핸들러와 함께 사용할 수 있는 유용한 파라미터 데코레이터를 제공합니다. 아래의 리스트는 데코레이터와 데코레이터가 표현하는 일반 Express 객체입니다. 더보기 @Request(), @Req() req @Response(), @Res() res @Next() next @Session() req.session @Param(param?: string) req.params / req.params[param] @Body(param?: string) req.bo..
nestjs
인터셉터 인터셉터는 @Injectable() 데코레이터와 함께 NestInterceptor 인터페이스를 구현하는 클래스입니다. 인터셉터는 관점 지향 프로그래밍(Aspect Oriented Programming, AOP) 기술로부터 영감을 받은 유용한 기능들을 가지고 있습니다. 추가 로직을 메서드 실행 이전, 이후에 적용할 수 있다. 함수로부터 반환된 값을 변환할 수 있다. 함수로부터 발생한 예외를 변환할 수 있다. 기초 함수의 동작을 확장할 수 있다. 특정 조건에 따라 기능을 완전히 덮어쓸 수 있다. 기초 각 인터셉터는 두 개의 인자를 가지는 intercept() 메서드를 구현합니다. 첫 번째 인수는 ExecutionContext 인스턴스(가드에서 썼던 것과 정확히 동일한 객체입니다)입니다. Execut..
가드 가드는 @Injectable() 데코레이터를 사용하여 CanActivate 인터페이스를 구현하는 클래스입니다. 가드는 단일 기능을 갖고 있습니다. 가드는 런타임에 존재하는 특정 조건(허가, 역할, ACLs 등)에 따라서 주어진 요청이 라우트 핸들러에 의해서 처리될지 처리되지 않을지의 여부를 지정합니다. 이것은 종종 권한 부여라고도 부릅니다. 권한 부여(인증과 함께 작용하는)는 일반적으로 익스프레스 어플리케이션에서 미들웨어에 의해 처리됩니다. 미들웨어는 토큰 유효성 검사와 요청 객체에 대한 프로퍼티에 접근하는 것 같은 작업이 특정 라우트 컨텍스트(+메타데이터)와 함께 강력하게 결합되어 있지 않기 때문에, 인증을 위한 좋은 방법입니다. 그러나 미들웨어를 사용하는 것은 본질적으로 좋은 선택은 아닙니다. ..
파이프 파이프는 @Injectable() 데코레이터와 함께 사용하는 클래스입니다. 이는 PipeTransform 인터페이스로부터 구현합니다. 파이프는 일반적으로 두 가지 방법을 사용합니다. 변환: 입력 데이터를 원하는 폼으로 변환합니다(e.g., 문자열을 정수형으로). 유효성 검사: 입력데이터를 평가하여 만약 유효하다면 그대로 값을 전달하지만, 그렇지 않고 데이터가 유효하지 않다면 예외를 발생시킵니다. 둘의 경우 파이프는 컨트롤러 라우트 핸들러에 의해 처리되는 인수에 대하여 작동합니다. Nest는 메서드가 호출되기 직전에 파이프를 넣고, 파이프는 메서드에 지정된 인수를 받아서 작동합니다. 변환과 검증은 모두 그때 실행되며, 그 이후에 라우트 핸들러가 잠재적으로 변환될 수도 있는 인수와 함께 호출됩니다. ..