도찐개찐

[NestJS] 모듈 추가 본문

NodeJS/NestJS

[NestJS] 모듈 추가

도개진 2023. 10. 20. 16:22
  • NestJS 모듈을 추가 하는 방법 2가지
    1. nest cli
    2. 직접 파일 추가

직접 파일을 추가하는 방법은 NestJS 모듈 추가 작업하는데 익숙해지는데 좋을 수 있지만

최근 개발자들은 새로운 기술들을 더 많이 사용해야 하기때문에 생산성을 조금이라도 높일 수 있도록

nest cli 를 이용해 간편하게 생성하는 것을 추천 합니다.

  1. Nest Cli 명령어 확인
    • 쉘(cmd, terminal...) 접속 > 프로젝트 경로 이동 > 하단 명령어 실행
      $ nest

  • 출력 결과
    Usage: nest <command> [options]
    
    Options:
      -v, --version                                   Output the current version.
      -h, --help                                      Output usage information.
    
    Commands:
      new|n [options] [name]                          Generate Nest application.
      build [options] [app]                           Build Nest application.
      start [options] [app]                           Run Nest application.
      info|i                                          Display Nest project details.
      add [options] <library>                         Adds support for an external library to your project.
      generate|g [options] <schematic> [name] [path]  Generate a Nest element.
        Schematics available on @nestjs/schematics collection:
          ┌───────────────┬─────────────┬──────────────────────────────────────────────┐
          │ name          │ alias       │ description                                  │
          │ application   │ application │ Generate a new application workspace         │
          │ class         │ cl          │ Generate a new class                         │
          │ configuration │ config      │ Generate a CLI configuration file            │
          │ controller    │ co          │ Generate a controller declaration            │
          │ decorator     │ d           │ Generate a custom decorator                  │
          │ filter        │ f           │ Generate a filter declaration                │
          │ gateway       │ ga          │ Generate a gateway declaration               │
          │ guard         │ gu          │ Generate a guard declaration                 │
          │ interceptor   │ itc         │ Generate an interceptor declaration          │
          │ interface     │ itf         │ Generate an interface                        │
          │ middleware    │ mi          │ Generate a middleware declaration            │
          │ module        │ mo          │ Generate a module declaration                │
          │ pipe          │ pi          │ Generate a pipe declaration                  │
          │ provider      │ pr          │ Generate a provider declaration              │
          │ resolver      │ r           │ Generate a GraphQL resolver declaration      │
          │ service       │ s           │ Generate a service declaration               │
          │ library       │ lib         │ Generate a new library within a monorepo     │
          │ sub-app       │ app         │ Generate a new application within a monorepo │
          │ resource      │ res         │ Generate a new CRUD resource                 │
          └───────────────┴─────────────┴──────────────────────────────────────────────┘

2. 모듈 생성 명령어

// *.spec.ts(테스트 전용파일) 함께 생성
$ nest g {module_type} {module_name}
$ nest general {module_type_alias} {module_name}

// *.spec.ts(테스트 전용파일) 생성 하지 않음
$ nest g --no-spec {module_type} {module_name}
$ nest general --no-spec {module_type_alias} {module_name}
  1. 주사용 type 별 생성 결과
  • application
    $ nest g application app
    $ ls ./app
    README.md               nest-cli.json           package.json            src
    test                    tsconfig.build.json     tsconfig.json
  • class
    $ nest g cl test
    CREATE src/test/test.spec.ts (139 bytes)
    CREATE src/test/test.ts (21 bytes)
    
    $ vi src/test/test.ts
    
    // 생성 된 코드
    export class Test {}
  • controller
$ nest g co test
CREATE src/test/test.controller.spec.ts (478 bytes)
CREATE src/test/test.controller.ts (97 bytes)

$ vi src/test/test.controller.ts

// 생성 된 코드
import { Controller } from '@nestjs/common';

@Controller('test')
export class TestController {}
  • module
    $ nest g mo mod
    CREATE src/mod/mod.module.ts (80 bytes)
    
    vi src/mod/mod.module.ts
    
    // 생성 된 코드
    import { Module } from '@nestjs/common';
    
    @Module({})
    export class ModModule {}
  • service
$ nest g s ser
CREATE src/ser/ser.service.spec.ts (439 bytes)
CREATE src/ser/ser.service.ts (87 bytes)

$ vi src/ser/ser.service.ts

// 생성 된 코드
import { Injectable } from '@nestjs/common';

@Injectable()
export class SerService {}
  • resource: 모듈 관련 전체 코드 자동 생성
    $ nest g res user
    > REST API (선택)
    > CRUD 생성 여부 ('Y' 입력)
    CREATE src/user/user.controller.spec.ts (556 bytes)
    CREATE src/user/user.controller.ts (883 bytes)
    CREATE src/user/user.module.ts (241 bytes)
    CREATE src/user/user.service.spec.ts (446 bytes)
    CREATE src/user/user.service.ts (607 bytes)
    CREATE src/user/dto/create-user.dto.ts (30 bytes)
    CREATE src/user/dto/update-user.dto.ts (169 bytes)
    CREATE src/user/entities/user.entity.ts (21 bytes)
    UPDATE package.json (295 bytes)
  1. controllerservice 추가하기
    • 동일 모듈 이름으로 co, s 생성 명령어를 두번 실행 해 줍니다.
      $ nest g co users
      CREATE src/users/users.controller.spec.ts (485 bytes)
      CREATE src/users/users.controller.ts (99 bytes)
      $ nest g s users
      CREATE src/users/users.service.spec.ts (453 bytes)
      CREATE src/users/users.service.ts (89 bytes)

 

728x90

'NodeJS > NestJS' 카테고리의 다른 글

[NestJS] Swagger 사용하기  (0) 2023.10.31
Comments