Param을 활용하여 게시물 id를 기준으로 게시물을 찾는 기능을 만들다.
1. ID로 게시물 찾기 Service 기능 구현
Board에 게시물마다 고유한 id를 주었으니까 id로 특정 게시물을 찾을 수 있다. boards.service.ts에서 service 기능 구현을 먼저 진행하겠다. controller에서 먼저 request 받아도 상관없다.
// boards.service.ts
getBoardById(id: string): Board {
return this.boards.find((board) => board.id === id);
}
getBoardById 메서드를 만들고 로직을 짠다. 일단 매개변수로 id를 받는다. 타입은 당연히 string이다. return값의 타입은 직접 만든 타입인 Board이다. 왜냐하면 게시물마다 id가 다르니까 게시물 1개가 return 될 것이다. id를 기준으로 찾는 방법은 게시물의 id와 매개변수로 들어온 id를 비교하여 동일한지 체크하는 것이다.
2. Controller 구현
// boards.controller.ts
@Get('/:id')
getBoardById(@Param('id') id: string): Board {
return this.boardsService.getBoardById(id);
}
service에서 만든 getBoardById 메서드를 불러와서 request에 대한 response를 진행한다.
url 가장 뒤에 ex) id=123di124 이런 식으로 Param이 있을 텐데, 그것을 사용하기 위해서 @Param('id') id를 하면 id에 param값이 대입된다. 모든 param을 가져오는 건 @Param() params: string []이다. 모든 param을 가져오면 문자열 배열로 가져오게 된다. 원하는 것만 가져다 쓰려면 @Param에 key?를 넣어주면 된다.
'Back-End > NestJS' 카테고리의 다른 글
[NestJS] 특정 값 찾기에서 없을 때 예외처리 (0) | 2024.01.16 |
---|---|
[NestJS] Pipe란 / Pipe 적용하기 (0) | 2024.01.15 |
[NestJS] DTO 만들기 (0) | 2024.01.09 |
[NestJS] 게시물 생성하는 Service, Controller 생성 (Request, Response) (0) | 2024.01.08 |
[NestJS] model 생성하기 (게시물) (0) | 2024.01.07 |