node.js (12) 썸네일형 리스트형 node.js - 이벤트 루프 NodeJS 란? 공식 사이트에서 확인해보면 "Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다" 라고 되어있습니다. NodeJS 의 대표적인 특징은 비동기, 이벤트 기반, 싱글스레드, Non Blocking, 확장성 등이 있습니다. 우선 Javascript 의 동작원리를 먼저 알아야 합니다. Javascript 동작원리 Javascript 는 싱글스레드 기반 콜백 큐를 사용합니다. 위의 그림처럼 Javascript 는 메모리 힙과 콜 스택으로 구성되어 있습니다. 메모리 힙은 메모리 할당이 일어나는 곳이고 콜 스택은 코드가 실행됨에 따라 호출 스택이 쌓이는 곳입니다. Javascript 는 싱글 스레드기반이기 때문에 하나의 메인 스레드와 하나의 콜 스택.. Nest.js - validation 클래스 유효성 검사기 (TypeScript가 필요하며 앱이 바닐라 JavaScript를 사용하여 작성된 경우에는 사용할 수 없습니다.) Nest는 클래스 유효성 검사기 라이브러리와 잘 작동합니다. 이 강력한 라이브러리를 사용하면 데코레이터 기반 유효성 검사를 사용할 수 있습니다. 데코레이터 기반 유효성 검사는 처리된 속성에 액세스할 수 있으므로 특히 Nest의 Pipe 기능 과 결합할 때 매우 강력 합니다. metatype시작하기 전에 필요한 패키지를 설치해야 합니다. $ npm i --save class-validator class-transformer 이것들이 설치되면 CreateCatDto클래스에 몇 가지 데코레이터를 추가할 수 있습니다. 여기에서 이 기술의 중요한 이점을 볼 수 있습니다. Crea.. Nest.Js - mongoDB 연결 MongoDB Nest는 MongoDB 데이터베이스와 통합하는 두 가지 방법을 지원합니다. 여기 에 설명된 MongoDB용 커넥터가 있는 내장 TypeORM 모듈 을 사용하거나 가장 인기 있는 MongoDB 객체 모델링 도구인 Mongoose 를 사용할 수 있습니다. 이 장에서는 전용 패키지 를 사용하여 후자를 설명합니다 . 필요한 종속성 을 설치하여 시작하십시오 . $ npm i @nestjs/mongoose mongoose MongooseModule설치 프로세스가 완료되면 루트로 가져올 수 있습니다. app.module.ts import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; @Module.. Nest.js - 인터셉터 인터셉터 @Injectable()인터셉터는 데코레이터 로 주석이 달린 클래스 이며 NestInterceptor인터페이스를 구현합니다. 인터셉터에는 AOP( Aspect Oriented Programming ) 기술 에서 영감을 받은 유용한 기능 세트가 있습니다 . 이를 통해 다음을 수행할 수 있습니다. 메서드 실행 전후에 추가 논리 바인딩 함수에서 반환된 결과를 변환 함수에서 throw된 예외를 변환합니다. 기본 기능 동작 확장 특정 조건에 따라 함수를 완전히 재정의합니다(예: 캐싱 목적) 라이프 사이클 Incoming request Globally bound middleware Module bound middleware Global guards Controller guards Route guards G.. Nest.js - pipes 파이프 파이프는 인터페이스 @Injectable()를 구현하는 데코레이터로 주석이 달린 클래스 입니다. 파이프에는 두 가지 일반적인 사용 사례가 있습니다. 변환 : 입력 데이터를 원하는 형식으로 변환(예: 문자열에서 정수로,spring type converter랑 비슷한기능) validation : 입력 데이터를 평가하고 유효한 경우 변경되지 않은 상태로 전달합니다. 그렇지 않으면 데이터가 올바르지 않을 때 예외를 던집니다 @Get(':id') getOneCat(@Param('id', ParseIntPipe, PositiveIntPipe) param: number) { console.log(param); // console.log(typeof param); return 'get one cat api'; .. Nest.js - 예외 필터 예외 필터 Nest에는 애플리케이션 전체에서 처리되지 않은 모든 예외를 처리하는 예외 레이어 가 내장되어 있습니다. 애플리케이션 코드에서 예외를 처리하지 않으면 이 계층에서 예외를 포착한 다음 자동으로 적절한 사용자 친화적인 응답을 보냅니다. 표준 예외 던지기 Nest는 패키지 HttpException에서 노출되는 내장 클래스를 제공합니다. @nestjs/common일반적인 HTTP REST/GraphQL API 기반 응용 프로그램의 경우 특정 오류 조건이 발생할 때 표준 HTTP 응답 개체를 보내는 것이 가장 좋습니다. 예를 들어, CatsController에는 findAll()메소드( GET라우트 핸들러)가 있습니다. 이 라우트 핸들러가 어떤 이유로 예외를 던졌다고 가정해 봅시다. 이를 시연하기 위해.. Nest.js - 미들웨어 미들웨어 미들웨어는 라우트 핸들러전에 호출되는 함수입니다 . 미들웨어 기능은 요청 및 응답 개체에 대한 액세스 권한이 next()있으며 애플리케이션의 요청-응답 주기에 있는 미들웨어 기능입니다. 다음 미들웨어 기능은 일반적으로 라는 변수로 표시 됩니다 미들웨어 기능은 다음 작업을 수행할 수 있습니다. 모든 코드를 실행합니다. 요청 및 응답 개체를 변경합니다. 요청-응답 주기를 종료합니다. 스택의 다음 미들웨어 함수를 호출합니다. 현재 미들웨어 함수가 요청-응답 주기를 종료하지 않으면 next()다음 미들웨어 함수에 제어를 전달하기 위해 호출해야 합니다. 그렇지 않으면 요청이 중단됩니다. 다음 명령어를 통해 미들웨어를 생성 할 수 있다. nest g middleware -name import { Injec.. Nest.js - 모듈 모듈 @Module()모듈은 데코레이터 로 주석이 달린 클래스 입니다. 데코레이터는 Nest 가 애플리케이션 구조를 구성하는 데 사용하는 메타 @Module()데이터를 제공합니다 . 각 애플리케이션에는 최소한 하나의 모듈인 루트 모듈 이 있습니다. 루트 모듈은 Nest가 애플리케이션 그래프 를 빌드하는 데 사용하는 시작점입니다. Nest가 모듈과 공급자 관계 및 종속성을 해결하는 데 사용하는 내부 데이터 구조입니다. 아주 작은 응용 프로그램에는 이론적으로 루트 모듈만 있을 수 있지만 일반적인 경우는 아닙니다. 구성 요소를 구성하는 효과적인 방법으로 모듈을 사용 하는 것이 좋습니다. 따라서 대부분의 응용 프로그램에서 결과 아키텍처는 각각 밀접하게 관련된 기능 집합을 캡슐화하는 여러 모듈을 사용 합니다 . .. 이전 1 2 다음 목록 더보기