본문 바로가기
반응형

개발/Nest6

리포지토리 패턴 리포지토리 패턴DB와 비즈니스 로직간의 중재자 역할을 하는 계층을 제공한다. 이를 통해 DB 작업을 다른 로직들과 분리 할 수 있다.Nest에서는 TypeORM을 이용하여 커스텀 레포지토리를 만들 수 있다.(원래 제공되던 @EntityRepository() 가 depricated 되었다.)DB에 접근하는 repositoryTypeORM을 이용하여 DB에 접근한다.// board.repository.tsimport { Injectable } from '@nestjs/common';import { BoardStatus } from 'src/boards/board-status.enum';import { Board } from 'src/boards/board.entity';import { CreateBoardD.. 2024. 11. 16.
@UsePipes와 ValidationPipe로 유효성검사 클라이언트가 서버로 전송하는 데이터의 유효성검사를 Nest에서는 효율적으로 할 수 있게 Pipe라는 기능을 제공한다.특히 ValidationPIpe는 DTO를 활용하여 자동으로 유효성 검사를 수행한다. @UsePipes@UsePipes는 Nest 데코레이터로 특정 메서드나 클래스에 파피프를 적용하기 위해 사용된다.파이프는 데이터를 변환하거나 유효성을 검사하는데 사용하는데, Request가 컨트롤러에 도달하기 전에 실행된다. @ValidationPipeValidationPipe는 DTO를 기반으로 유효성 검사를 수행한다.  자동 유효성 검사: DTO에 정의된 조건을 기준으로 데이터 검증자동 예외처리: 데이터가 유효하지 않을 경우 400 반환데이터 정제: 불필요한 필드를 제거하고 DTO에 정의된 필드만 남긴.. 2024. 11. 15.
Nest 공식문서에서 dto 생성시 interface보다 class를 권장하는 이유 Nest 공식문서에서 dto 생성시에 interface보다 class를 사용하는 걸 권장하는데, 일단 ts는 runtime에서 사라지기 때문에 runtime에는 nest에서 interface로 만들어진 엔티티에 접근할 수 없다.하지만 class는 ES6의 표준 문법이기 때문에 컴파일된 JS에서도 real entity로써 보존된다. Pipe 같은 기능은 런타임에서 변수의 타입에 접근할때 중요하다. export class CreateCatDto { name: string; age: number; breed: string;} 2024. 11. 14.
Nest로 SSR하기 (+MVC) npm i -g @nestjs/cli nest new project 먼저 nest로 새로운 프로젝트를 만들자. 그 후, hbs라는 라이브러리를 깔아야 한다. hbs는 대충 SSR을 위한 라이브러리라 생각하자. 하다보면 알게된다. npm install --save hbs 그 후 main.ts를 다음과 같이 작성한다. import { NestFactory } from '@nestjs/core'; import { NestExpressApplication } from '@nestjs/platform-express'; import { join } from 'path'; import { AppModule } from './app.module'; async function bootstrap() { const app .. 2022. 6. 24.
반응형