본문 바로가기

NestJS10

[NestJS] Pipes Pipe는 Controller arguments에 값을 전달받을떄 사용하며, 아래의 2개의 처리를 함. 1. transformation: 입력 데이터를 원하는 형식으로 변환 2. Validation: 입력 데이터를 평가하고 유효한 경우 변경하지 않고 그대로 전달. 그렇지 않으면 예외 발생 😶 Pipe 동작 시점 Controller가 호출되기 전, Nest는 파이프를 삽입하고 파이프는 arguments를 수신하여 동작한다. transformation, Validation 작업은 위의 시점에 수행되며, 그 후에는 경로 핸들러(Controller)가 호출 됨. /pipe/a/123 호출 -> "123" -> Pipe -> Controller 😶 내장 파이프 ValidationPipe ParseIntPipe P.. 2023. 9. 6.
[NestJS] exception-filters Nest 에는 애플리케이션 전체에서 처리되지 않은 모든 예외를 처리하는 내장 예외 레이어가 함께 제공된다. 애플리케이션 코드에서 예외가 처리되지 않으면 이 계층에서 이를 포착한 다음 사용자에게 친숙한 응답을 자동으로 보낸다. 🙄 표준 예외 던지기 import { Controller, Get, HttpException, HttpStatus } from '@nestjs/common' @Controller("/error/test") export class ExceptionController { @Get() findAll() { throw new HttpException('Forbidden', HttpStatus.FORBIDDEN); } } /* Response { "statusCode": 403, "messa.. 2023. 9. 5.
[NestJS] Middleware 😶 Middleware 라우터 핸들러 이전에 호출되는 함수. 미들웨어 기능은 요청/응답 개체에 엑세스할 수 있으며 next() 애플리케이션의 요청/응답 주기에 있는 미들웨어 기능도 있음 미들웨어 기능은 nest 로 표기됨 [Client Side] --- Http Request ---> [Middleware] ------> [Route Handler] @RequestMapping import { Injectable, NestMiddleware } from "@nestjs/common"; import { Request, Response, NextFunction } from 'express'; @Injectable() export class LoggerMiddleware implements NestMiddle.. 2023. 9. 5.
[NestJS] Modules 😶 @Modules providers : Nest 인젝터에 의해 인스턴스화되고 적어도 이 모듈 전체에서 공유될 수 있는 공급자 controllers: 인스턴스화되어야 하는 이 모듈에 정의된 컨트롤러 imports : 이 모듈에 필요한 공급자를 내보내는 가져온 모듈 목록 exports: 하위 집합은 providers 이 모듈에서 제공되며 이 모듈을 가져오는 다른 모듈에서 사용할 수 있어야 한다. import { Module, Global } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { CatsModule } from './cat.. 2023. 9. 5.