First steps

First steps

이 기사에서는 Nest의 핵심 기본 사항에 대해 알아 봅니다. Nest 애플리케이션의 필수 구성 요소에 익숙해 지도록 입문 레벨에서 많은 기초를 다루는 기능을 갖춘 기본 CRUD 애플리케이션을 빌드합니다.

Language

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

우리는 대부분 우리가 제공하는 예제에서 TypeScript를 사용하지만 항상 코드 스니펫을 바닐라 JavaScript 구문으로 전환 할 수 있습니다 (각 스니펫의 오른쪽 상단 모서리에있는 언어 버튼을 클릭하여 전환).

Prerequisites

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

Setup

Nest CLI를 사용하여 새 프로젝트를 설정하는 것은 매우 간단합니다. npm을 설치하면 OS 터미널에서 다음 명령을 사용하여 새 Nest 프로젝트를 만들 수 있습니다.

$ npm i -g @nestjs/cli
$ nest new project-name

project 디렉토리가 생성되고, 노드 모듈과 몇 개의 다른 상용구 파일이 설치되며, src/디렉토리가 생성되어 여러 코어 파일로 채워집니다.

srcapp.controller.tsapp.module.tsmain.ts

핵심 파일에 대한 간략한 개요는 다음과 같습니다.

app.controller.ts

단일 경로의 기본 컨트롤러 샘플.

app.module.ts

응용 프로그램의 루트 모듈

main.ts

핵심 함수 NestFactory를 사용하여 Nest 애플리케이션 인스턴스를 작성하는 애플리케이션의 엔트리 파일입니다.

main.ts에는 비동기 함수가 포함되어 있습니다.

@@filename(main)

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

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();
@@switch
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로 스캐 폴딩된 프로젝트는 개발자가 각 모듈을 전용 디렉토리에 보관하는 규칙을 따르도록 권장하는 초기 프로젝트 구조를 만듭니다.

Platform

Nest는 플랫폼에 구애받지 않는 프레임 워크가되는 것을 목표로합니다. 플랫폼 독립성을 통해 개발자는 여러 유형의 응용 프로그램에서 활용할 수 있는 재사용 가능한 논리적 부분을 만들 수 있습니다. 기술적으로 Nest는 어댑터가 생성되면 모든 Node HTTP 프레임 워크와 작동 할 수 있습니다. 기본적으로 지원되는 두 가지 HTTP 플랫폼이 있습니다 : expressfastify. 필요에 가장 적합한 것을 선택할 수 있습니다.

platform-express

Express는 노드에 대한 잘 알려진 미니멀리스트 웹 프레임 워크입니다. 커뮤니티에서 구현한 많은 리소스를 갖춘 전투 테스트된 프로덕션 용 라이브러리입니다. @nestjs/platform-express 패키지가 기본적으로 사용됩니다. 많은 사용자가 Express를 제대로 사용하고 있으므로 이를 활성화하기 위해 아무 조치도 취할 필요가 없습니다.

platform-fastify

Fastify는 최대 효율성과 속도를 제공하는 데 중점을 둔 고성능 및 오버 헤드가 낮은 프레임 워크입니다. 여기 사용 방법을 읽으십시오.

어떤 플랫폼을 사용하든 자체 애플리케이션 인터페이스를 제공합니다. 이들은 각각 NestExpressApplicationNestFastifyApplication으로 나타납니다.

아래 예제와 같이 타입을 NestFactory.create()메소드에 전달하면 app 객체는 특정 플랫폼에서만 사용할 수있는 메소드를 갖게 됩니다. 그러나 기본 플랫폼 API에 실제로 액세스하지 않는 한 유형을 지정할 필요가 없습니다.

const app = await NestFactory.create<NestExpressApplication>(AppModule);

Running the application

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

$ npm run start

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

Last updated