2023/04/06 6

NestJs custom pipe 에 대해 알아보자

사용자 정의 Pipe 사용자 정의 파이프는 다양한 용도로 사용될 수 있습니다. 예를들어, 입력 데이터의 유효성검사, 데이터 변환, 비즈니스 로직 처리 등이 가능합니다. 이에 따라 파이프 로직도 다양하게 작성될수도 있습니다. 사용자 정의 파이프를 만드려면 PipeTransform 인터페이스를 구현하는 클래스를 작성해야합니다. PipeTransform 인터페이스는 transform() 메소드를 정의합니다. 이 메소드는 파이프가 변환하거나 검증할 값을 입력으로 받고 변환된 값을 반환합니다. 아래는 예시코드입니다. 직접구현하여도 되지만 cli를 통해 간단하게 파이프를 생성합니다. nest g pi my import { ArgumentMetadata, Injectable, PipeTransform } from '..

nest js 2023.04.06

NestJs Pipe에 대하여 알아보자

파이프란? 파이프의 경우에 두가지 사용 사례가 있습니다. 변환 : 입력 데이터를 원하는 형식으로 변환(예: 문자열에서 정수로) validation : 입력 데이터를 평가하고 유효한 경우 변경되지 않은 상태로 전달합니다. 그렇지 않으면 예외를 throw합니다. 빌드인 파이프와 바인딩 파이프 빌트인 파이프는 NestJS 프레임워크에서 제공하는 파이프입니다. 예를 들어 ValidationPipe ParseIntPipe ParseFloatPipe ParseBoolPipe ParseArrayPipe ParseUUIDPipe ParseEnumPipe DefaultValuePipe ParseFilePipe 바인딩 파이프는 라우트 핸들러에 파이프를 바인딩하는 것을 의미합니다. 예를 들어 다음과 같이 작성할 수 있습니다..

nest js 2023.04.06

NestJs 미들웨어

미들웨어란? 미들웨어는 http요청과 응답사이 즉 라우터 핸들러 이전에 호출되는 함수 입니다. 다시말해서 클라이언트 요청을 라우터 핸들러가 받기전에 가로채서 다른작업을 수행할 수 있습니다. 다음과 같은 특징들이 있습니다. 요청에 대한 검증, 로깅, 인증, 권한 체크, 캐싱 등의 작업을 수행 할 수 있습니다. 다수의 미들웨어 등록을 통해 다양한 작업을 순차적으로 처리할 수 있습니다. next 함수 호출을 통해 미들웨어 체인을 연결합니다. next 함수를 호출하면 다음 미들웨어가 실행되며, 호출하지 않으면 다음 미들웨어가 실행되지 않습니다. NestJS는 전역 미들웨어(Global Middleware)와 로컬 미들웨어(Local Middleware)를 지원합니다. 전역 미들웨어는 모든 요청과 응답에 적용되며..

nest js 2023.04.06

NestJs Provider(공급자)

공급자란? nestjs 공급자란 애플리케이션에서 사용되는 객체를 생성하고 제공하는 역할을 합니다. 대부분의 공급자는 클래스로 작성되며 @Injectable() 데코레이터를 사용하여 해당 클래스를 공급자로 등록합니다. 공급자는 모듈내에서 생성되고 제공됩니다 @Module() 데코레이터의 providers 배열에 공급자를 등록하여 모듈 내에서 사용할 수 있습니다. 또한, @Injectable() 데코레이터를 사용하여 공급자 클래스에 의존성 주입(Dependency Injection) 기능을 적용할 수 있습니다. userService라는 공급자를 만들고 userModule에 등록한다고 가정해봅시다. 예시코드입니다. 1. 클래스(class) 기반 공급자 service class로 예시를 적용해보았습니다. imp..

nest js 2023.04.06

NestJs controller에 대해 이해하기

컨트롤러란 HTTP 요청을 처리하고 클라이언트 응답에 반환하는 역할을 한다. 일반적으로 컨트롤러는 특정 URL 엔드포인트에 대한 요청을 처리하며, 이를 위해 데코레이터를 사용하여 연결된 메서드를 식별합니다. 라우팅 컨트롤러의 라우팅을 설정하기위해 @Controller() 데코레이터를 사용합니다 아래의 코드는 /user 엔드포인트에서 Get, Post , Put, Delete를 사용한것이다. import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; import { UserService } from './user.service'; import { CreateUserDto } from './dto/create-user..

nest js 2023.04.06

NestJs cli 명령어 모음

cli 설치 npm i -g @nestjs/cli 프로젝트 생성 nest new 프로젝트명 NestJS 애플리케이션에 새로운 모듈, 컨트롤러, 서비스 등을 생성 nest generate [schematic] [name] [options] nest g [schematic] [name] [options] [Schematics] [Schematics] 이름 요약 설명 app 단일 저장소 내에서 새 애플리케이션을 생성하십시오(표준 구조인 경우 단일 저장소로 변환). library lib 단일 저장소 내에서 새 라이브러리를 생성합니다(표준 구조인 경우 단일 저장소로 변환). class cl 새 클래스를 생성합니다. controller co 컨트롤러 선언을 생성합니다. decorator d 사용자 지정 데코레이터를..

nest js 2023.04.06