Nest.JS (2) - 모듈 분리하기

Seong·2022년 11월 16일
0

Nest.js

목록 보기
2/9
post-thumbnail

nest g(generate)로 생성할 수 있는것들
┌───────────────┬─────────────┬──────────────────────────────────────────────┐
│ 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 │
└───────────────┴─────────────┴──────────────────────────────────────────────┘

모듈 생성하기

nest g module 모듈 명

(폴더가 없을시)폴더가 생기고 module.ts 파일이 생긴다.

그후 app.module.ts 에 저절로 import 된다.

컨트롤러 생성하기

nest g co 컨트롤러 명

.controller.ts 가 생기고 폴더에 해당 모듈이 있을시,
해당 모듈의 controllers:[컨트롤러] 에 들어감,
모듈없으면 상위로 올라감

서비스 생성하기

nest g s 서비스 명 

해당 모듈의 providers:[서비스]에 자동으로 들어간다
그 후 Controller에서 서비스를 사용할 수 있도록 의존성 주입을 한다

board.Controller

@Controller('board')
export class BoardController {
  constructor(private boardService:BoardService) {}  //의존성 주입
  
@Get('')
  boardIndex() {
    return this.boardService.getHi();
  }
}

board.Service

import { Injectable } from '@nestjs/common';

@Injectable()
export class BoardService {
  getHi() {
    return '하이'
  }
}

board.module.ts

@Module({
  controllers: [BoardController],
  providers: [BoardService]
})

app.module.ts

@Module({
  imports: [BoardModule],
  controllers: [],
  providers: [],
})

+module의 exports로 Service를 넣으면 외부에서 Service를 사용할 수 있긴하다.

profile
메모장

0개의 댓글