[NestJS] 코드분석

Asher Park·2023년 2월 12일
0
post-thumbnail

스파르타코딩클럽 내일배움캠프 NestJS 강의를 들으며 공부한 것을 적은 것입니다.

main.ts

  • 파일 이름 절대 변경 금지!
  • NestJS에서 진입점으로 사용하겠다고 약속된 파일
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();
  • NestFactory.create() : NestJS 어플리케이션을 생성하는 함수
  • AppModule이라는 모듈을 Root모듈로 사용하는 어플리케이션을 생성
  • 포트번호 3000번으로 서버를 띄우겠다!

app.module.ts

  • main.ts 에서 Root모듈로 지정된 AppModule
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

@ - decorator

  • 클래스나 함수가 어떤 역할을 수행하는지에 대해 NestJS에 알려주는 역할
  • @Module - 모듈이라는 역할을 할 것이라는걸 얘기
  • 단독으로 사용할 수 없고 꾸며주는 클래스나 함수와 반드시 같이 사용

app.controller.ts

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}
  • DI (의존성 주입) :생성자의 인자로 AppService 객체를 넘겨 appService 변수에 객체가 주입
  • @Injectable 과 같은 데코레이터가 달린 클래스를 추적하여 동적으로 의존성 주입을 한다

app.service.ts

import { Injectable } from '@nestjs/common';

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}
  • @Injectable : service에서 해당 데코레이터가 붙은 클래스나 함수를 다른 곳에서 DI 할 수 있게 한다
  • Repository를 의존하며 비지니스 로직을 담당
profile
배움에는 끝이없다

0개의 댓글