2020-2-29

NestJS

  • NestJS는 효율적이고 확장성을 위한 NodeJS기반 서버사이드 프레임워크로서 타입스크립트를 지원한다. 뿐만 아니라 OOP, 함수형프로그래밍, Functinal Reactive 프로그래밍을 지원한다.
$npm i -g @nestjs/cli
$nest new project-name

  • Node 8.9.0이상의 환경이 필요하다. (사전설정)
  • src디렉토리에 app.controller.ts, app.module.ts, main.ts가 생성된다.
  • app.module.ts : root module of application
  • main.ts : 애플리케이션의 entryfile이다. 여기서 NestApplicatoin을 만드는 NestFactory라는 함수를 사용한다!
  • Nest 애플리케이션을 만들기 위해서는 NestFactory클래스를 사용해야하고 이 클래스안에는 여러 static methode들이 정의되어있다.

Controller

  • nest에서 컨트롤러를 쓰기 위해서는 클래스와 데코레이터를 사용한다. @Controller(‘path’)데코레이터를 쓰면 path가 정의된다.
$nest g controller cats // 컨트롤러를 간단하게 정의할수도있다.

$nest g controller accounts
  • src디렉토리에 accounts라는 하위 디렉토리가 생기고, 그 밑에 accounts.controller.ts파일과 accounts.controller.spec.ts 파일이 함께 생성되었다.
@Module({
  imports: [],
  controllers: [AppController, AccountsController],
  providers: [AppService],
})
export class AppModule {}


  • Module의 controllers에 보면 AccountsController가 자동으로 추가됬다.

느낀점

  • NestJS, typescript 둘 다 처음 접해본 기술들이였다. api에 대한 설계는 머릿속에 있지만 nestjs보다는 typescript에 대한 이해가 아직 부족하다. 특히 컴파일에 대한 부분… 얼른 학습해서 돌려봐야겠다. tsc로 컴파일을 해서 돌려야되는건지 아니면 ts-node로 되는건지부터… 우선은 이 차이부터 익히자.
Written on February 29, 2020