전체 글 39

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

파워쉘 보안 정책 문제해결

문제사항 nest new 프로젝트명 입력시 이와같은 에러가 반환되었다. nest : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\sk\AppData\Roaming\npm\nest.p s1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft .com/fwlink/?LinkID=135170)를 참조하십시오. 위치 줄:1 문자:1 + nest new test + ~~~~ + FullyQualifiedErrorId : UnauthorizedAccess 아마 pwoershell의 기본값이 restricted로 설정되어 있기 때문인거같다 해결방법을 알아보자 1. Window검색창에서 PowerShell을 찾아주고 관리자 권한으..

기타 2023.04.05

NestJS 시작하기

🖐 Nodejs 설치하기 nestjs를 시작하기위해선 nodejs와 npm이 반드시 설치 되어있어야한다. 설치하지 않았다면 아래의 공식홈페이지에 가서 설치하도록 한다. https://nodejs.org/en Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 잘 설치되었는지 확인한다. node -v 🍔 nestjs cli 설치하기 nest cli는 프로젝트를 생성하고 관리하기 위한 도구이다. npm install -g @nestjs/cli 전역옵션인 "-g"를 주어 설치하도록 한다 🥕 프로젝트 생성하기 nest new 프로젝트 이름 ※ 보안오류가 뜬다면 아래의 글을 참고하자 https://de..

nest js 2023.04.05

NestJs란

💜 설명 Node.js 기반으로 한 웹 API 프레임 워크로써 Express 또는 Fastify 프레임워크를 래핑하여 동작하기 때문에 서버를 더 쉽게만들어 줍니다. typescript로 구축되어있어 기존 레거시언어를 쓰던 사람도 익숙하게 다룰 수 있습니다. 자바에는 Spring framework, 파이썬에는 django 같은 서버프레임 워크가 있듯이 node.js에도 여러가지의 프레임워크가 있지만 그중 우수한 프레임워크라 생각되는것은 nestjs 입니다. 🤎 주요특징 모듈화: Nest.js는 모듈화된 구조를 가지고 있어서 애플리케이션을 모듈 단위로 나눠서 개발할 수 있습니다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다. 의존성 주입(Dependency Injection): Nest.js는..

nest js 2023.04.05