[개발] #1. Nest.js - 기본 구조

안녕하세요 @realmankwon입니다.

Nest.js 의 기본 골격은 다음과 같습니다.

  • main.ts
  • app.controller.ts
  • app.module.ts
  • app.service.ts

시작점은 말할 필요도 없이 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();

AppModule 을 호출하는 것으로 실행이 되는 것 같습니다.

처음 호출되는 app.module.ts 로 가면

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';

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

@Module 이라는 decorator 에 controller 가 맵핑되어 있습니다.

app.controller 로 가면

import { Controller, Get } from '@nestjs/common';

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

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

@Get decorator를 통해 appService 의 함수를 호출합니다.
app.service.ts로 가게 되면 아마도 getHello()의 비즈니스 로직이 작성되어 있을 것입니다.

즉 웹에서 url로 호출을 하면 express 의 라우터의 역할을 controller가 대신하긴 하지만 service에 정의된 함수를 리턴하는 것으로 끝입니다.
실제적인 비즈니스 로직은 service 에 분리시켜 놓은 것입니다.

이런 방식을 취하게 된 이유는 좀 알아봐야겠네요.
일단은 시작을 했으니 이미 반을 하게 된 Nest.js 입니다!! ^^

Sort:  

@realmankwon transfered 30.000 KRWP to @krwp.burn. voting percent : 100.00%, voting power : 22.36%, steem power : 1920662.75, STU KRW : 1200.
@realmankwon staking status : 10576.555 KRWP
@realmankwon limit for KRWP voting service : 10.576 KRWP (rate : 0.001)
What you sent : 30.000 KRWP (Voting Percent over 100 %)
Refund balance : 25.444 KRWP [61483811 - 63085453281bc60c429828484f6a4e08e9078cd7]

Coin Marketplace

STEEM 0.25
TRX 0.25
JST 0.040
BTC 94194.88
ETH 3392.03
USDT 1.00
SBD 3.50