이전 글에서는 GET 요청에 대해서 알아봤다.
이번엔 DELETE문에 대해서 알아보자
DELETE
DELETE문 도 어려운건 딱히 없다.
현재 구현한 delete구문을 살펴보자
Controller의 delete end-point
@Delete(':id')
remove(@Param('id', ParseIntPipe) id: number): Promise<void> {
return this.boardService.delete(id);
}
- @Delete(':id') : DELETE HTTP 메서드와 경로 매개변수 정의
- ParseIntPipe : URL로 받은 id 문자열을 숫자로 변환
- main.ts의 ValidationPipe transform 설정이 true로 설정돼있다면 빼도 상관없다.
- 커스텀으로 에러관리를 하려면 넣어주자
- Promise<void> : 삭제 성공 시 아무 것도 반환하지 않음
Service의 delete 메서드
async delete(id: number): Promise<void> {
const board = await this.getOne(id); // 게시글 존재 확인
await this.boardRepository.remove(board); // 존재하면 삭제
}
사용예시
// React에서 삭제 요청
const deleteBoard = async (id: number) => {
try {
await axios.delete(`http://localhost:5000/board/${id}`);
console.log('삭제 성공');
} catch (error) {
if (axios.isAxiosError(error)) {
if (error.response?.status === 404) {
alert('게시글을 찾을 수 없습니다.');
} else {
alert('삭제 중 오류가 발생했습니다.');
}
}
}
};
'Programming > Nest.js' 카테고리의 다른 글
NestJS, React, TypeORM, PostgreSQL 사용해서 게시판 만들기(2) (0) | 2024.11.14 |
---|---|
NestJS, React, TypeORM, PostgreSQL 사용해서 게시판 만들기(1) (6) | 2024.11.08 |
NestJS TypeORM으로 DB(PostgreSQL) 연결하기 (1) | 2024.11.07 |
Jest로 NestJS 코드 테스트 작성(2) (Matcher) (1) | 2024.11.05 |
Jest로 NestJS 코드 테스트 작성(1) (1) | 2024.11.05 |