Written by
Nostrss
on
on
[NestJs]Day1 기본 구조와 개념
nestjs의 시작
nestjs는 main.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();
그리고 하나의 모듈에서 애플리케이션을 생성하는 것을 볼 수 있다.
module 파일을 들여다 보면 아래와 같다.
// app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
AppModule
에는 AppController
와 AppService
가 있다.
NestJs는 Controller와 비즈니스 로직을 분리하고 싶어한다.
AppController
와 : Url을 가져오고 함수를 return(Express의 router같은 존재)AppService
: 함수를 실행하고 결과를 return
// controller
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();
}
@Get('/hello')
sayHello(): string {
return this.appService.getHi();
}
}
// service
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
getHi(): string {
return 'Hi nest';
}
}
위와 같이 작성하고 http://localhost:3000/hello에 접속해보자. Hi nest가 출력되는 것을 확인할 수 있다.