Nest Js 첫걸음

Node/Nest Js 2020. 1. 28. 13:42

첫걸음

  • 이 기사에서는 Nest의 핵심 기본 사항을 학습합니다.
  • Nest 애플리케이션의 필수 구성 요소에 익숙해 지려면, 우리는 입문 수준에서 많은 기초를 다루는 기능을 갖춘 기본 CRUD 응용 프로그램을 작성합니다.

언어

  • 우리는 TypeScript를 좋아하지만 무엇보다도 Node.js를 좋아합니다.
  • 그렇기 때문에 Nest는 TypeScript 및 순수 JavaScript와 호환됩니다.
  • Nest는 최신 언어 기능을 활용하므로 바닐라 JavaScript와 함께 사용하려면 Babel 컴파일러가 필요합니다.

전제 조건

  • 운영 체제에 Node.js ( >= 8.9.0 )가 설치되어 있는지 확인하십시오.

설정

  • Nest CLI를 사용하여 새 프로젝트를 설정하는 것은 매우 간단합니다.
  • npm을 설치하면 OS 터미널에서 다음 명령을 사용하여 새 Nest 프로젝트를 만들 수 있습니다.
$ npm i -g @nestjs/cli
$ nest new project-name

 

 

  • 프로젝트 디렉토리가 생성되고, 노드 모듈과 몇 가지 보일러플레이트 파일이 설치됩니다
  • src/ 디렉토리가 생성되어 여러 코어 파일로 채워집니다.
  • src
    • app.controller.ts
    • app.module.ts
    • main.ts

 

  • 핵심 파일에 대한 간략한 개요는 다음과 같습니다.
    • app.controller.ts : 단일 경로(route)의 기본 컨트롤러 샘플
    • app.module.ts : 애플리케이션의 루트(root) 모듈
    • main.ts : 핵심 함수 NestFactory를 사용하여 Nest 애플리케이션 인스턴스를 작성하는 애플리케이션의 엔트리 파일입니다.

 

  • main.ts에는 비동기 함수가 포함되어있어 애플리케이션을 bootstrap 합니다.
    • bootstrap : 예비 명령에 의해 프로그램을 로드(load)하는 방법
//main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

 

 

  • Nest 애플리케이션 인스턴스를 작성하기 위해 핵심 NestFactory 클래스를 사용합니다.
  • NestFactory는 애플리케이션 인스턴스를 생성 할 수있는 몇 가지 정적 메서드를 제공합니다.
  • create() 메소드는 INestApplication 인터페이스를 이행하는 애플리케이션 오브젝트를 리턴합니다.
  • 이 객체는 다음 장에서 설명하는 일련의 메소드를 제공합니다.
  • 위의 main.ts 예제에서 HTTP 리스너를 시작하면 응용 프로그램이 인바운드 HTTP 요청을 기다릴 수 있습니다.
  • Nest CLI로 스캐폴딩 된 프로젝트는 개발자가 각 모듈을 전용 디렉토리에 보관하는 규칙을 따르도록 장려하는 초기 프로젝트 구조를 만듭니다.

플랫폼

  • Nest는 플랫폼에 구애받지 않는 프레임워크가 되는 것을 목표로 합니다.
  • 플랫폼 독립성을 통해 개발자는 여러 유형의 응용 프로그램에서 활용할 수있는 재사용 가능한 논리적 부분을 만들 수 있습니다.
  • 어댑터가 작성되면 Nest는 모든 노드 HTTP 프레임 워크와 작동 할 수 있습니다.
  • 기본적으로 지원되는 두 가지 HTTP 플랫폼 인 express와 fastify가 있습니다.
    • 필요에 가장 적합한 것을 선택할 수 있습니다.
    • platform-express
      • Express는 노드에 대한 잘 알려진 미니멀리스트 웹 프레임 워크입니다.
      • 커뮤니티에서 구현 한 많은 리소스를 갖춘 전투 테스트 된 프로덕션 용 라이브러리입니다.
      • @nestjs/platform-express 패키지가 기본적으로 사용됩니다.
      • 많은 사용자가 Express를 제대로 사용하고 있으므로이를 활성화하기 위해 아무 조치도 취할 필요가 없습니다.
    • platform-fastify
      • Fastify는 최대 효율성과 속도를 제공하는 데 중점을 둔 고성능 및 오버 헤드가 낮은 프레임 워크입니다.
      • 사용 방법을 여기에서 읽으십시오
  • 어떤 플랫폼을 사용하든 자체 애플리케이션 인터페이스를 제공합니다.
  • 이들은 각각 NestExpressApplicationNestFastifyApplication으로 표시됩니다.
  • 아래 예제와 같이 NestFactory.create() 메서드에 타입을 전달하면 app 객체에는 해당 특정 플랫폼에서만 사용할 수있는 메소드가 있습니다.
  • 그러나 기본 플랫폼 API에 실제로 액세스하지 않는 한 유형을 지정할 필요가 없습니다.
const app = await NestFactory.create<NestExpressApplication>(AppModule);

 

 

응용 프로그램 실행

  • 설치 프로세스가 완료되면 OS 명령 프롬프트에서 다음 명령을 실행하여 인바운드 HTTP 요청을 수신하는 애플리케이션을 시작할 수 있습니다.
$ npm run start

 

  • 이 명령은 src/main.ts 파일에 정의 된 포트에서 수신하는 HTTP 서버로 앱을 시작합니다.
  • 응용 프로그램이 실행되면 브라우저를 열고 http://localhost:3000/로 이동하십시오.
  • Hello World 메시지가 보일 것입니다!

 

'Node > Nest Js' 카테고리의 다른 글

Nest.js, React.js, Typescript 및 MongoDB로 최신 풀 스택 개발 - 1부  (0) 2020.02.01
Nest js 모델-뷰-컨트롤러  (0) 2020.01.31
Nest js Providers  (0) 2020.01.30
Nest Js 컨트롤러  (0) 2020.01.28
Nest js 소개  (0) 2020.01.27
블로그 이미지

_김은찬

두번 다시는 꺾이지 않으리

,