728x90
// nest.js 구조
test
src
- main.ts
- AppModule
- Controllers
- Services
- Tests
- ...
- AppModule
- Controllers
- Services
- Tests
- ...
- AppModule
- Controllers
- Services
- Tests
- ...목차
- 컨트롤러 개념
- 컨트롤러 구현하기
- 이벤트 컨트롤러 작성
- 모듈에 이벤트 컨트롤러 추가
Controllers
컨트롤러 개념

각 AppModule에는 컨트롤러가 있습니다.
컨트롤러의 역할
controller는 특정 action들을 호출하는 메소드를 가지는 클래스입니다. 이를 사용하여 클라이언트의 request, response를 핸들링하는 역할을 합니다.
컨트롤러의 특징
- 클라이언트의 Request직접 처리한다.
- @Get과 같은 HTTP verb 데코레이터로 action을 정의합니다
- 컨트롤러의 action 메소드에서 반환한 것을 Response로 보냅니다
- 참고로 @controller 데코레이터로 decorated됩니다.
Controllers 구현하기
// src/app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
// /bye 경로로 GET 요청할 경우, 문자열을 리턴한다
@Get('/bye')
getBye(): string {
return 'Bye :D';
}
}
/bye 루트의 코드를 추가해주었습니다.
npm run start:devnest.js 어플리케이션을 개발자 모드로 실행해줍니다.
브라우저에서 localhost:3000/bye 주소로 바로 접속하시거나, Postman과 같은 api 도구로 GET 요청을 보내면 'Bye :D'라는 문구를 볼 수 있습니다.
Resource Controller
주요 개념
Resource : 이벤트, 유저, 이벤트 참가자 등을 지칭합니다Operation : CRUD 작업을 의미합니다
이벤트 컨트롤러 작성
// src/events.controllers.ts
import { Controller, Delete, Get, Patch, Post } from '@nestjs/common';
@Controller('/events')
export class EventsController {
// 5개 정도 가볍게 유지하는 것이 좋다
@Get()
findAll() { }
@Get()
findOne() { }
@Post()
create() { }
@Patch()
update() { }
@Delete()
remove() { }
}
모듈에 이벤트 컨트롤러 추가
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { EventsController } from './events.controllers';
@Module({
imports: [],
controllers: [AppController, EventsController], // 이벤트 컨트롤러 추가
providers: [AppService],
})
export class AppModule {}
이벤트 컨트롤러를 작성했다면 모듈에 추가해줘야 합니다.
728x90
'World > Nest.js' 카테고리의 다른 글
| 06. Nest.js_RestAPI_Request Body (0) | 2023.02.07 |
|---|---|
| 05. Nest.js_RestAPI_Route Parameters (0) | 2023.02.07 |
| 03. Nest.js 프로젝트 구조 (0) | 2023.02.07 |
| 02. nest.js 프로젝트 준비하는 방법 (0) | 2023.02.07 |
| 01. nestjs를 사용하기 전 (0) | 2023.02.07 |
댓글