목록Nest.JS/Docs (7)
상똥이의 Back-End 공부방
Exception filtersNest는 애플리케이션 전체에서 처리되지 않은 예외를 처리해주는 예외 레이어가 내장되어있습니다. 애플리케이션 코드에서 예외처리가 되지 않은 경우 이 레이어에 인식되고 자동으로 사용자 친화적인 응답을 내보냅니다.별도의 설치 과정이 필요 없이, 이는 HttpException 타입의 예외를 처리하는 내장된 전역 예외 필터에 의해 수행됩니다. 만약 예외상황이 인식되지 않으면 내장된 예외 필터가 아래의 JSON 형식의 응답을 생성합니다.{ "statusCode": 500, "message": "Internal server error"}HINT전역 예외 필터는 http-errors 라이브러리를 부분적으로 지원합니다. 기본적으로, 상태코드와 메시지를 포함하는 예외가 발생하면 적절히 ..
Middleware미들웨어는 라우트 핸들러 전에 호출되는 함수입니다. 미들웨어 함수는 요청 및 응답 객체와 애플리케이션의 요청-응답 사이클에서 next() 미들웨어 함수에 접근할 수 있습니다. next 미들웨어 함수는 일반적으로 next라는 변수로 표시됩니다.네스트 미들웨어는 기본적으로 express 미들웨어와 동일합니다. 아래의 express의 공식문서에서 가져온 설명은 미들웨어의 능력을 서술합니다.:미들웨어 함수는 아래의 업무를 수행할 수 있습니다.: · 어느 코드든 실행할 수 있음 · 요청과 응답 객체를 변형할 수 있음 · 요청-응답 사이클을 종료시킴 · 다음 미들웨어 함수를 호출함 · 만약 현재 미들웨어가 요청-응답 사이클을 종료하지 않으면, 반드시 next()를 호출해..
Module은 @Module() 데코레이터를 사용하는 클래스입니다. @Module() 데코레이터는 Nest가 애플리케이션 구조를 조직할 수 있도록 메타데이터를 제공합니다. 각각의 애플리케이션은 적어도 하나의 모듈(루트 모듈)을 가지고 있습니다. 루트 모듈은 애플리케이션 그래프(Nest가 모듈과 프로바이더 사이의 관계와 의존성을 해결하는데 사용하는 내부 데이터 구조)를 만드는 시작점입니다. 아주 작은 애플리케이션이 이론적으로 루트 모듈만을 가지기 때문에 이런 경우는 일반적이지 않습니다. 모듈이 컴포넌트를 구성하는데에 효과적인 방법이라고 강력히 추천하고 싶습니다. 따라서 대부분의 애플리케이션에서 결과적으로 여러 모듈을 사용하여, 각각 밀접하게 관련된 기능 집합을 캡슐화하는 아키텍처를 채택하게 됩니다. @Mo..
ProvidersProvider는 Nest의 근본적인 개념입니다. 많은 Nest의 기본 클래스는 Provider로 취급될 수 있습니다. Provider의 주 목적은 의존성 주입입니다. 이는 객체가 서로 다양한 관계를 맺을 수 있음을 의미하며 이 객체들을 "연결하는" 기능은 크게 Nest 런타임 시스템에 위임될 수 있습니다.이전 장에서 간단한 CatsController를 작성했습니다. Controller는 HTTP 요청을 처리하고 더 복잡한 작업은 Provider에 위임합니다. Provider는 module에 'providers'로 선언되는 순수 자바스크립트 클래스입니다.HINTNest는 객체 지향적인 방식으로 의존성을 설계하고 구성할 수 있는 가능성을 제공하기 때문에, SOLID 원칙을 따르는 것을 강력..
Controllers컨트롤러는 클라이언트로부터 요청을 받고 응답하는 역할을 맡고 있습니다.컨트롤러의 목적은 애플리케이션에 들어오는 특정한 요청을 받아들이는 것입니다. 라우팅 매커니즘은 어느 컨트롤러가 어느 요청을 받아들일지 제어합니다. 주로 각각의 컨트롤러는 하나 이상의 경로를 가지며 경로들은 서로 다른 역할을 수행할 수 있습니다. 기본 컨트롤러를 만들기 위해, 우리는 클래스와 데코레이터를 사용합니다. 데코레이터는 클래스에 필요한 메타데이터를 연결하고, 이를 통해 Nest는 라우팅 맵을 생성합니다. (이 라우팅 맵은 들어오는 요청을 해당하는 컨트롤러에 연결합니다.)HINT내장된 검증과 함께 CRUD를 빠르게 생성하고 싶다면, CLI의 CRUD 생성 명령어: nest g resource [name] 를 사..
First steps이 글에서는 Nest.js의 핵심 기초를 배울 것입니다. 필수적인 구성 요소에 익숙해지기 위해 입문 수준의 전반적인 기능들을 활용하여 기본적인 CRUD 애플리케이션을 설계할 것입니다. Language 우리는 TypeScript를 애용하지만 기본적으로 Node.js를 사용합니다. 이로 인해 Nest.js는 TypeScript와 순수 JavaScript 모두 호환 가능해집니다. Nest.js는 최신 버전의 언어를 사용하는 장점이 있으므로 순수 JavaScript를 사용하기 위해 Babel 컴파일러가 필요합니다. 예시에서는 거의 TypeScript를 사용할 것이지만, 순수 JavaScript를 사용해도 괜찮습니다. PrequisitesNode.js 버전이 16 이상임을 확인해주세요. ..
IntroductionNest.js는 Node.js의 효율적이고 확장 가능한 서버사이드 프레임워크입니다. 자바스크립트를 사용하며 객체지향 프로그래밍, 함수형 프로그래밍, 함수 반응형 프로그래밍 요소를 가지고 있으며 vanilla JS 외에도 TypeScript 환경을 완벽하게 지원합니다. Nest는 내부적으로 강력한 HTTP 서버 프레임워크를 사용하는데, 기본적으로는 Express를 사용하며 Fastify를 사용할 수도 있습니다. Nest.js는 Node.js(Express, Fastify) 프레임워크 하에서 추상적인 레벨을 제공하면서도 개발자에게 자신의 API를 직접 노출시키기도 합니다. 이는 개발자로 하여금 하위 플랫폼에 사용 가능한 무수한 third-party모듈을 자유롭게 사용할 수 있도록 ..