JavaScript Dev.

JavaScript Dev./Nest.js

Nest.js - middleware

1. Middleware HTTP 요청을 처리하는 과정 중간에 실행되는 기능 요청과 응답 객체에 접근하여 요청을 변형하거나 처리하기 전에 특정한 동작을 수행할 수 있다. 인증, 로깅 등을 처리할 수 있다. 요청과 응답 객체를 변경할 수 있다. 요청의 validation을 체크하여 오류 처리를 할 수 있다. 2. 사용법 @injectable 데코레이터를 사용 인터페이스를 implements해서 사용한다. class 내부에 configure를 사용하여 선언. 이때 NestModule 인터페이스를 implements한다. logger.middleware.ts import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Respon..

JavaScript Dev./Nest.js

Nest.js - Provider

1. Provider 클래스, 팩토리, 값 등을 등록하여 Nest.js 애플리케이션 내에서 의존성 주입을 통해 사용할 수 있게 해준다. 1. service - 비즈니스 로직을 처리하기 위한 서비스 클래스를 정의할 때 사용. DI를 통해 Cotroller나 다른 서비스에서 사용 된다. import { Injectable } from '@nestjs/common'; import { Cat } from './interfaces/cat.interface'; @Injectable() export class CatsService { private readonly cats: Cat[] = []; create(cat: Cat) { this.cats.push(cat); } findAll(): Cat[] { return ..

JavaScript Dev./Nest.js

Nest.js - Controller

1. Controller Routing(라우팅) import { Controller, Get } from '@nestjs/common'; @Controller('cats') export class CatsController { @Get() findAll(): string { return 'This action returns all cats'; } } 데코레이터 부분에 'cats'가 path 역할을 하여 /cats 이렇게 들어가게 된다. @Controller() 이렇게 아무것도 없을 경우 root path가 된다. Request Method import { Controller, Get, Req } from '@nestjs/common'; import { Request } from 'express'; @Co..

JavaScript Dev./Nest.js

Nest.js - Module

1. nest.js 모듈이란? ==> Nest.js에서 모듈은 애플리케이션을 구성하는 핵심 요소 중 하나. 모듈은 관련된 기능을 그룹화하고 재사용 가능한 코드를 캡슐화하는 데 사용. Nest.js는 모듈을 사용하여 애플리케이션을 컴파일하고 실행하며, 의존성 주입(Dependency Injection)을 통해 모듈 간의 상호작용을 관리한다. 기능의 분리: 애플리케이션을 작은 기능 단위로 분리하여 관리. 의존성 관리: 모듈은 자체적으로 필요한 의존성을 가질 수 있다. 다른 모듈에서 해당 모듈을 가져와 사용할 때, 의존성 주입을 통해 필요한 의존성을 제공받을 수 있다. 재사용성: 모듈은 다른 애플리케이션에서도 재사용될 수 있다. 이는 코드를 모듈로 캡슐화함으로써 발생. 따라서 비슷한 기능을 가진 다른 프로젝트..

JavaScript Dev./TypeScript

TypeScript - Utility Types

// keyof interface User { id: number; name: string; age: number; gender: 'M' | 'F'; } type UserKey = keyof User; // 'id' | 'name' | 'age' | 'gender' const uk: UserKey = 'age'; keyof 사용 // Partial interface User { id: number; name: string; age: number; gender: 'M' | 'F'; } let admin: Partial = { id: 1, name: 'Bob', }; Partial은 모든 속성에 대해서 optional을 걸어준다. // Required interface User { id: number; na..

JavaScript Dev./TypeScript

TypeScript - Generics

// Generic function getSize(arr: T[]): number { return arr.length; } const arr1 = [1, 2, 3]; getSize(arr1); // 3 const arr2 = ['a', 'b', 'c']; getSize(arr2); // 3 을 이용해 사용하는 쪽에서 Type을 지정해준다. interface Mobile { name: string; price: number; option: T; } const m1: Mobile = { name: 's21', price: 1000, option: { color: 'red', coupon: false, }, }; const m2: Mobile = { name: 's20', price: 900, option: ..

Yoonsoo
'JavaScript Dev.' 카테고리의 글 목록 (2 Page)