ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Nest.js Api만들기 1(Project Setup,Overview)
    FrameWork/Nest.js 2022. 6. 16. 11:36

    Project Setup

     

    npm i -g @nestjs/cli

    nest new

     

     

    git init
    git 

     

    Nest.js가 구성한 Project Architecture에서 제공하는 것

     

    nest-cli.json

     

     

    package.json

    "script"

    "dependencies" , "devDependencies"

     

    test, main, service, module, controller

     

    모든 것이 제대로 작동하는지 테스트하기 위해서, package.json을 확인해 보자

     

    > npm run start:dev

    명령어로 인해 Nest.js가 시작 될 것이다.

    위 와 같은 log가 뜨면서 해당 프로젝트가 정상적으로 동작 했음을 확인할 수 있다.

     

    Nest.js 프로젝트를 생성할 때 지정되는 기본 port인 3000을 통해 접속하면 프로젝트가 정상적으로 start되었음을 확인 할 수 있다.

     

     

    Overview

    mani.ts

    Nest.js는 main.ts 파일을 무조건 가진다.

     

    보이는 것 처럼 기본 함수를 가지고 있다. 기본 이름은  bootstrap이고, 이름은 아무거나 사용해도 된다. 이것이 하는 기능은 await NestFactory.create(AppModule)을 호출하고, 어플리케이션은 3000번의 포트를 리스닝하고 있다.

     

    app.module로 들어가서 보면 AppModule이 class라는 것을 알 수 있다.

    그리고 해당 file에 위와 같은 함수를 데코레이터를 사용한 함수를 찾을 수 있다. 데코레이터는 클래스에 함수 기능을 추가할 수있게 해준다. 클래스 위의 함수 이고, 클래스를 위해 움직인다고 생각하면 된다.

     

    위에서 AppModule은 비어 있는 함수인데, 진짜는 @Module 함수에 있다. 이 안에  importscontrollers 그리고 providers에 대한 내용이 있다.

     

     

    app.controller.ts를 살펴보면 @Get이라는 데코레이터가 보이는데 그 아래에는 string을 return하는 getHello함수가 있다. 그리고 getHello는  this.appServiece.getHello()를 리턴한다. 

     

    그러면 appServiece는 어디서 오는 것일까? =>

    constructor의 에 정의된 AppService을 통해서 해당 type이 정의 된 file들어가면, 또 다른 클래스인  AppService가 존재하는 것을 확인 할 수 있다.

    그리고 해당 class에는 또 다른 데코레이터인 @Injectable이 붙어 있다. 또한 해당 클래스는 string type을 반환 하면 실제로 "Hello World!"를 반환하는 함수를 포함 하고 있다.

     

    [출처 - https://nomadcoders.co/nestjs-fundamentals/lectures/1942 ]

    댓글

Designed by Tistory.