반응형
이 강의는 인프런의 '따라하며 배우는 NestJS' 강의를 보고 학습한 글입니다.
모듈
- root모듈인 AppModule에서 시작
- Module 데코레이터를 가
- 기본적으로 싱글
Controller
- 클라이언트의 요청을 처리하고 servcie에 요청후 결과를 사용자에게 반환
- CRUD 인터페이스 핸들러 구
- Controller 데코레이터를 가짐
Providers
- Nest의 기본 개념으로, 대부분의 기본 Nest 클래스는 서비스, 리포지토리, 팩토리, 헬퍼 등의 프로바이더로 취급될 수 있음
- 종속성으로 주입 가능 (객체의 인스턴스를 연결하는 기능은 대부분 Nest 런타임에 위임)
Service
- Controller의 요청에 따라 데이터의 유효성을 체크하거나, DB에 아이템을 생
- CRUD 로직 구현
- Injectable 데코레이터로 감싸져 모듈에 제공됨, 이 서비스 인스턴스는 애플리케이션 전체에서 사용 될 수 있음
- 보통 Controller의 생성자에서 Inject
- 모듈 파일의 providers에 등록하여 사용
@Controller('boards')
export class BoardsController {
constructor(private boardsService: BoardsService) {}
}
DTO(Data Transfrer Object)
- 데이터 유효성을 체크하는데 효율적이며, 더 안정적인 코드를 만들어줌
- NestJS에서는 Class로 설계하는 것을 추천
- 파라메터로 사용하는 프로퍼티를 전부 받아 처리하는것보다 변경에 유연해짐
// 선언: create-board.dto.ts
export class CreateBoardDto {
title: string;
description: string;
}
// Controller
@Post()
createBoard(@Body() createBoarddto : CreateBoardDto): Board {
return this.boardsService.createBoard(createBoarddto);
}
// Service
createBoard(createBoardDto : CreateBoardDto){
const { title, description } = createBoardDto;
const board: Board = {
id : uuid(),
title: title,
description: description,
status: BoardStatus.PUBLIC
}
this.boards.push(board);
return board;
}
반응형
'프로그래밍 > NestJS' 카테고리의 다른 글
NestJS 입문 - 권한, 로그, 설정 (0) | 2023.06.06 |
---|---|
NestJS 입문 - 인증기능 (0) | 2023.06.06 |
NestJS 입문 - pipe, TypeORM (0) | 2023.06.06 |