-
Nest.js Api만들기 1(Project Setup,Overview)FrameWork/Nest.js 2022. 6. 16. 11:36
Project Setup
npm i -g @nestjs/cli
nest newgit init
gitNest.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 함수에 있다. 이 안에 imports와 controllers 그리고 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 ]
'FrameWork > Nest.js' 카테고리의 다른 글
Nest.js 개요 및 객체 지향 디자인 패턴 3 (Exception filter & Pipes) (0) 2022.06.20 Nest.js 개요 빛 객체지향 디자인 패턴 2 (Modules, 캡슐화) (0) 2022.06.19 Nest.js 개요 및 객체 지향 디자인 패턴 1(DI, Provider) (0) 2022.06.19 Nest.js Api만들기 3 (@Query ) (0) 2022.06.17 Nest.js Api만들기 2 (Controller) (0) 2022.06.16