[NestJS] CRUD 구현

·2023년 2월 12일
0

게시물 삭제하기

remove() vs delete()

  • remove
    무조건 존재하는 아이템을 remove 메소드를 이용해서 지워야함
    그렇지 않으면 에러 발생 (404)

  • delete
    만약 아이템이 존재하면 지우고 존재하지 않으면 아무런 영향이 없음

remove를 이용하면 하나의 아이템을 지울 때 두 번 데이터베이스 이용 (아이템 유무 + 지우기)
delete한번만 접근해도 가능

boards.service.ts

async deleteBoard(id: number): Promise<void> {
    const result = await this.boardRepository.delete(id);

    if (!result.affected) {
      throw new NotFoundException(`Can't find Board with id ${id}`);
    }

    console.log('result', result);
  }

  • affected: 1 : 영향을 받은 데이터가 하나 있음을 나타냄(id 존재) <-> affected: 0 (id 존재 x)

boards.controller.ts

@Delete('/:id')
  deleteBoard(@Param('id', ParseIntPipe) id: number): Promise<void> {
    return this.boardsService.deleteBoard(id);
  }
  • ParseIntPipe
    메소드의 파라미터가 숫자로 오지 않았을 때 에러를 띄워줌
profile
개발자가 되는 과정

0개의 댓글