Nest.js 공식문서 정리

1. Nest, 실행

oniri1 2024. 10. 22. 17:14

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

파일명 내용
app.controller.ts 단일 경로를 갖춘 기본 컨트롤러 (RestFul API를 설정한다.)
app.controller.spec.ts 컨트롤러에 대한 단위 테스트. spec를 붙인 것들은 테스트 용도다.
app.module.ts 애플리케이션의 루트 모듈.
app.service.ts 단일 함수를 작성함
main.ts NestFactoryNest 애플리케이션 인스턴스를 생성하기 위해 코어 함수를 사용하는 애플리케이션의 입력 파일입니다 .

main.ts에는 애플리케이션을 실행 할 비동기 함수가 포함된다.


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

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

Nest APP 인스턴스를 생성하려면 위 코드의 core에서 NestFactory클래스를 사용합니다.

  • create()메서드는 인터페이스를 충족하는 애플리케이션 객체를 반환(인자로는 루트 모듈을 넘겨준다.)

기본적으로 서버 실행 시 오류가 발생하면 APP 인스턴스가 종료되는데, 종료를 막고 오류를 생성하고 싶으면 abortOnError를 create시 옵션으로 넘겨주면 된다.
(예: NestFactory.create(AppModule, { abortOnError: false }))

실행

기본적으로 package.json에 nest 관련 명령어가 설치되어 있다.

npm run start

nodemon

기본적으로 nest에는 파일 감시기능이 포함되어 nodemon을 따로 설치할 필요가 없다.

$ npm run start:dev

해당 명령어로 APP을 실행하면, 코드의 변화를 감지하는 상태로 서버가 열린다.

linter 및 formatter

IDE가 필요 없는 헤드리스 환경(지속적인 통합, Git 후크 등)의 경우 Nest 프로젝트에는 즉시 사용할 수 있는 npm스크립트가 제공된다.

# Lint and autofix with eslint
npm run lint

# Format with prettier
npm run format