nest.js

main.ts

momomoo 2024. 6. 29. 15:50

 

보통은 아래와 같이 기본 형태를 유지한다.

필요에 따라 추가하는건

1. 미들웨어 추가: 특정 미들웨어를 글로벌로 적용할 수 있습니다.

2. 글로벌 파이프 설정: 입력 데이터의 유효성 검사 및 변환을 위한 파이프를 설정할 수 있습니다.

3. 글로벌 필터 설정: 예외 처리를 위한 글로벌 필터를 설정할 수 있습니다.

4. 글로벌 인터셉터 설정: 요청과 응답을 가로채서 특정 작업을 수행할 수 있습니다.

5. CORS 설정: Cross-Origin Resource Sharing 설정을 추가할 수 있습니다.

 

 

Nest 애플리케이션 인스턴스를 생성하려면 핵심 NestFactory클래스를 사용합니다. NestFactory애플리케이션 인스턴스를 생성할 수 있는 몇 가지 정적 메서드를 노출합니다. 이 create()메서드는 인터페이스를 충족하는 애플리케이션 객체를 반환합니다 INestApplication. 이 객체는 다음 장에서 설명하는 메서드 집합을 제공합니다. main.ts위의 예에서 우리는 간단히 HTTP 리스너를 시작하여 애플리케이션이 인바운드 HTTP 요청을 기다리게 합니다.

Nest CLI를 사용하여 스캐폴딩된 프로젝트는 개발자가 각 모듈을 전용 디렉토리에 보관하는 규칙을 따르도록 장려하는 초기 프로젝트 구조를 만듭니다.

 

 

 

 

만약 몇개 추가하면

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
import { SomeMiddleware } from './middleware/some.middleware';
import { SomeExceptionFilter } from './filters/some-exception.filter';
import { SomeInterceptor } from './interceptors/some.interceptor';

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

  // 글로벌 미들웨어 적용
  app.use(SomeMiddleware);

  // 글로벌 파이프 설정
  app.useGlobalPipes(new ValidationPipe());

  // 글로벌 필터 설정
  app.useGlobalFilters(new SomeExceptionFilter());

  // 글로벌 인터셉터 설정
  app.useGlobalInterceptors(new SomeInterceptor());

  // CORS 설정
  app.enableCors({
    origin: 'http://example.com',
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
    preflightContinue: false,
    optionsSuccessStatus: 204,
  });

  await app.listen(3000);
}
bootstrap();