728x90
안녕하세요. 오늘은 게시물 수정 및 삭제를 해보겠습니다.
먼저 service파일입니다.
import { Injectable, NotFoundException } from '@nestjs/common';
import { CreateBoardDto } from './board.dto';
@Injectable()
export class BoardService {
private boards = [];
private id = 1;
create(createBoardDto: CreateBoardDto){
createBoardDto.id = this.id;
this.boards.push(createBoardDto);
this.id++;
return createBoardDto;
}
getAll(){
return this.boards;
}
update(createBoardDto: CreateBoardDto,id: number) {
const indexToDelete = this.boards.findIndex(function(board){
return board.id === id;
});
if(indexToDelete === -1) {
throw new NotFoundException(`Can't found board by ${id}`);
}
createBoardDto.id = id;
this.boards[id - 1] = createBoardDto;
return this.boards[id];
}
delete(id: number){
const indexToDelete = this.boards.findIndex(function(board){
return board.id === id;
});
if(indexToDelete === -1) {
throw new NotFoundException(`Can't found board by ${id}`);
}
this.boards.splice(indexToDelete, 1);
}
}
다음은 controller파일입니다.
import { Body, Controller, Delete, Get, Param, Post, Put, ValidationPipe } from '@nestjs/common';
import { BoardService } from './board.service';
import { CreateBoardDto } from './board.dto';
@Controller('board')
export class BoardController {
constructor(
private boardService: BoardService
){}
@Post()
create(@Body(ValidationPipe)createBoardDto: CreateBoardDto) {
return this.boardService.create(createBoardDto);
}
@Get()
getAll(){
return this.boardService.getAll();
}
@Put('/:id')
update(
@Body(ValidationPipe)createBoardDto: CreateBoardDto,
@Param('id')id: number) {
return this.boardService.update(createBoardDto,+id);
}
@Delete('/:id')
delete(@Param('id')id: number){
return this.boardService.delete(+id);
}
}
이제 테스트를 해볼게요.
먼저 3개의 게시물을 작성한 상태입니다. 그리고 수정한번 해보겠습니다.
그리고 삭제입니다.
3번 게시물은 수정이 되고 1번 게시물은 삭제가 된걸 볼 수 있습니다.
'NestJs' 카테고리의 다른 글
[NestJs] TypeORM을 사용해서 게시물 CRUD 만들기 (0) | 2024.04.05 |
---|---|
[NestJs] TypeORM 설치 및 설정하기 (0) | 2024.03.27 |
[NestJs] ValidationPipe로 유효성 검사하기 (0) | 2024.03.09 |
[NestJs] 게시판 생성 및 불러오기 (0) | 2024.02.29 |
[NestJs] Controller 및 Service 생성 (0) | 2024.02.20 |