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를 사용할 수 있긴하다.