도찐개찐
[NestJS] 모듈 추가 본문
- NestJS 모듈을 추가 하는 방법 2가지
nest cli
- 직접 파일 추가
직접 파일을 추가하는 방법은 NestJS 모듈 추가 작업하는데 익숙해지는데 좋을 수 있지만
최근 개발자들은 새로운 기술들을 더 많이 사용해야 하기때문에 생산성을 조금이라도 높일 수 있도록
nest cli 를 이용해 간편하게 생성하는 것을 추천 합니다.
- Nest Cli 명령어 확인
- 쉘(cmd, terminal...) 접속 > 프로젝트 경로 이동 > 하단 명령어 실행
$ nest
- 쉘(cmd, terminal...) 접속 > 프로젝트 경로 이동 > 하단 명령어 실행
- 출력 결과
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}
- 주사용 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)
controller
와service
추가하기- 동일 모듈 이름으로 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)
- 동일 모듈 이름으로 co, s 생성 명령어를 두번 실행 해 줍니다.
728x90
'NodeJS > NestJS' 카테고리의 다른 글
[NestJS] Swagger 사용하기 (0) | 2023.10.31 |
---|
Comments