본문 바로가기

프로그래밍/NestJS

NestJS 입문 - 기본 요소, CRUD

반응형

이 강의는 인프런의 '따라하며 배우는 NestJS' 강의를 보고 학습한 글입니다.

 

[무료] 따라하며 배우는 NestJS - 인프런 | 강의

이 강의를 통해 NestJS에 대해서 배울 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

 

모듈

- 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