TIL. 20 NestJS

박경철·2023년 5월 20일

1. NestJS란?

  • 자바스크립트나 타입스크립트로 서버 애플리케이션을 개발할 수 있는 백앤드 웹 프레임워크이다.
  • 미니 프로젝트 진행 시 핵심적인 기능만 제공하는 가벼운 Express 웹 프레임워크로 선정할지 고민했지만, 타입스크립트가 도입된 NestJS로 선정(Spring과 비슷하다고 함.)

1.2 NestJS 설치

  • npm i -g @nestjs/cli

1.3 NestJS 프로젝트 만들기

  • nest new project-name

1.4 NestJS 소스 파일

  • app.controller.spec.ts : Controller 테스트
  • app.controller.ts : Request를 받아 처리하고 Response
  • app.module.ts : Controller와 Service 정의
  • app.service.ts : Controller가 요청한 비즈니스 로직 처리
  • main.ts : 시작 소스, 서버의 포트 설정 및 CORS 정의
  • package.json : 프로젝트의 설정 파일

1.4 NestJS 서버 실행

  • npm run start

2. Generator

  • NestJS는 Module, Controller, Service 등을 자동으로 생성해주는 Generator가 있습니다.

2.1 Module 생성

  • nest g module users

  • Users 모듈 생성 및 app.modules.ts에 해당 모듈 자동으로 import 됨.

2.2 Controller 생성

  • nest g controller users
  • users.module.js에 users.controller 자동으로 추가
  • users.controller.ts에 users라는 라우팅 path가 자동으로 추가

2.3 Service 생성

  • nest g service users
  • DI(Dependency Injection) 의존성 주입이라는 개념으로, Service를 사용할 곳에 선언해주면 필요한 시점에 자동으로 객체를 생성해주는 역할을 함.

3. CRUD 작성

3.1 Controller

3.2 Service

3.3 DTO

  • PartialType을 통해 CreateUserDto와 인터페이스가 동일하나 필수 값이 아니므로 모든 속성을 선택적으로 입력 받도록 함.

4. resource

  • resource 명령어를 사용하면 쉽게 CRUD에 필요한 템플릿을 만들 수 있다.( 3번 항목에 작성한 코드를 resource 명령어를 통해 간편하게 만들 수 있다.)
  • npm g resource

참고자료

profile
안녕하세요!

0개의 댓글