미들웨어 미들웨어는 라우트 핸들러 이전에 사용되는 기능입니다. 미들웨어는 어플리케이션의 요청 응답 사이클에서 요청·응답 객체에 접근할 수 있으며, next() 미들웨어 기능을 사용할 수 있습니다. next 미들웨어 기능은 흔히 next라는 이름의 변수로 사용됩니다. Nest의 미들웨어는 기본적으로 익스프레스 미들웨어와 동일합니다. 아래의 설명은 익스프레스 공식문서가 설명하는 미들웨어의 기능입니다. 더보기 미들웨어 기능은 다음과 같은 일을 할 수 있습니다. 어떠한 코드든 실행합니다. 요청 및 응답 객체를 변경합니다. 요청 응답 사이클을 종료합니다. 스택에 쌓여있는 다음 미들웨어를 불러옵니다. 현재의 미들웨어가 요청-응답 사이클을 종료하지 않는다면, 반드시 next()를 사용하여 다음 미들웨어로 넘어갈 수 ..
네스트
모듈 모듈은 @Module() 데코레이터로 주석이 달린 클래스입니다. @Module() 데코레이터는 Nest가 어플리케이션 구조를 이용하고 정리하게 해주는 메타데이터를 제공합니다. 각각의 어플리케이션은 최소한 하나의 모듈, 루트 모듈을 가집니다. 루트 모듈은 네스트가 어플리케이션 그래프(Nest가 모듈과 프로바이더 관계와 의존성을 해결하는 데 사용하는 내부 데이터 구조)를 구축하는 데 사용하는 스타팅 포인트입니다. 매우 작은 어플리케이션이 이론적으로 단 하나의 루트 모듈을 갖게 되지만, 이는 일반적인 경우는 아닙니다. Nest는 모듈을 컴포넌트를 정리하는 효과적인 방법으로 강력히 추천합니다. 그래서 대부분의 어플리케이션에 대해 결과적인 아키텍쳐는 밀접하게 관련되어 있는 기능들을 캡슐화 해주는 다수의 모듈..
프로바이더 프로바이더는 Nest의 근간이 되는 개념입니다. 많은 Nest의 기본 클래스들(services, repositories, factories, helpers 등)이 provider로 취급될 수 있습니다. 프로바이더의 가장 주된 아이디어는 의존성 주입입니다. 의존성 주입은 객체가 서로 다양한 관계를 생성할 수 있다는 점이며, 객체의 인스턴스를 연결하는 기능은 Nest 런타임 시스템에 위임될 수 있습니다. 앞선 컨트롤러 예제처럼, 컨트롤러는 HTTP 요청들을 처리하고, 더 복잡한 일들을 프로바이더에 위임합니다. 프로바이더는 모듈에서 프로바이더로 위임된 일반적인 자바스크립트의 클래스입니다. 서비스 간단하게 CatsService를 만들어 보겠습니다. 이 서비스는 데이터 저장소 및 검색의 역할을 하며, ..
컨트롤러 컨트롤러의 목적은 응용 프로그램에 대한 특정 요청을 받는 것입니다. 라우팅 매커니즘은 어떤 컨트롤러가 어떤 요청을 받을지를 컨트롤합니다. 대개 각각의 컨트롤러는 하나 이상의 라우트를 가지며 각각 경로에 따른 개별적인 처리를 수행합니다. 기본적으로 컨트롤러를 생성하기 위해서 클래스와 데코레이터를 사용합니다. 데코레이터는 클래스와 메타데이터를 연결하고, 네스트가 라우팅 맵을 생성할 수 있도록 해줍니다. 라우팅 기본 컨트롤러를 정의할 때 @Controller() 데코레이터를 사용합니다. Controller 파일을 만들기 위해서 NestCli를 사용할 수 있습니다. nest g controller [라우트 경로] 예를 들어, cats 라는 라우트들을 묶어 하나의 컨트롤러로 받을 때, 아래와 같이 작성할..