특정 post의 특정 코맨트 조회 API 관련 질문
125
2 asked
@Get(':commentId')
getComment(@Param('commentId', ParseIntPipe) commentId: number) {
return this.commentsService.getCommentById(commentId);
}안녕하세요 코드팩토리님해당 강의 듣는중 CommentController의 getComment 메서드에서 분명 특정 post의 특정 comment를 가져와야할거같은데 보면 commentId로만 조회하는걸로 보여집니다.제가 이해하지 못하고 의도를 파악하지 못한건지 반대인지 확인이 필요해보입니다. 상기는 해당 문제되어 보여지는 코드입니다. 강의에서는 postman을 사용해 해당 엔드포인트로 요청하는 장면이있는데 postId에 152? 게시글ID 값을 넣어서 조회하는데 코드대로면 의미가 없어보입니다.
감사합니다.
Answer 2
0
//CommentController
@Get(':commentId')
getComment(
@Param('postId', ParseIntPipe) postId: number,
@Param('commentId', ParseIntPipe) commentId: number,
) {
return this.commentsService.getCommentById(postId, commentId);
}
//--------------------------------------------------------------
//CommentService
async getCommentById(postId: number, commentId: number) {
const post = await this.postsService.getPostById(postId);
const comment = await this.commentsRepository.findOne({
...DEFAULT_COMMENT_FIND_OPTIONS,
where: {
post: {
id: post.id,
},
id: commentId,
},
});
if (!comment) {
throw new BadRequestException(
`id: ${commentId} Comment는 존재하지 않습니다.`,
);
}
return comment;
}제 의도대로 수정해봤습니다.
0
강의에서는 postId 값과 commentId를 이용해 postman에서 조회를 하는데 코드팩토리님 코드에서는 해당 엔드포인트에서 postId를 받을수 있는 방법이 없는데 조회를 하고있다는 말씀을 드리는 겁니다.
0
코드팩토리님이 말씀하신 의도라면 postman에서 특정 코맨트 조회시 postId를 param에 넣지 않아야 의도된 코드가아닐까 생각이듭니다. 강의에서는 분명 조회시 152번 포스트의 코맨트를 조회한다고 하셔서 오해의 소지가 있지 않을까합니다.
0
안녕하세요!
postId를 받을 수 없다는게 어떤 말씀이실까요?
post -> comment 로 진입한다면 post의 id를 받을 수 있습니다. (comment를 가져오는 API에서는 post id를 가져올 수 없지만 이건 당연한거라 이 부분을 말씀하시는건지 잘 모르겠습니다.)
저의 이해와 관계없이 post id가 필요하지 않게 작성을 하셔도 상관 없습니다. 예를들어 /post/comment/:commentId 이런식이 되겠죠.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. 민혁님.
NestJS에서 특정 post의 특정 comment를 조회하는 API 구현 관련하여 궁금증이 있으신 것 같습니다. 제출하신 코드에서는 commentId만으로 댓글을 조회하게 되어 있습니다. 그러나 실제로 실습하신 내용에서는 postId 또한 이용해 댓글을 조회하고자 하셨던 것으로 보입니다.
코드에서 의도한 대로 특정 post에 속한 comment를 조회하고 싶으시다면, 다음과 같은 방법을 사용하실 수 있습니다:
- 라우트에 postId 포함시키기: URL의 경로에
postId를 포함시키면 특정post에 대한 특정comment를 조회하는 것처럼 보일 수 있습니다.
@Get('posts/:postId/comments/:commentId') getComment( @Param('postId', ParseIntPipe) postId: number, @Param('commentId', ParseIntPipe) commentId: number ) { return this.commentsService.getCommentByPostIdAndCommentId(postId, commentId); }
- 서비스에서 추가 필터링: 이 구현에서는 서비스 레이어에서 주어진
postId와commentId에 맞는 데이터를 조회해야 합니다.commentsService에서 이러한 옵션을 처리하도록 해야 합니다.
관련 구현에 필요한 이해를 돕기 위해 유사한 질문과 설명이 실린 게시물들을 참고하세요.
문제 해결에 도움이 되길 바라며, 추가적인 질문 사항이 있으시면 계속해서 궁금한 점을 문의해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
cascade 질문
0
39
1
@types/bcrypt 설치과정이 누락된것같습니다.
0
48
1
process.env port key 에러
0
46
1
추상화
0
50
1
[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상
0
96
2
where 키워드가 들어가는 메서드와 아닌 메서드
0
56
1
BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?
0
69
1
app.controller app.service 는 지워도되나요?
0
69
1
@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이
0
79
1
포트 3000에서 listen하는 곳까지 넘어가지 않습니다.
0
66
1
PickType 사용 시 `as const`를 꼭 사용해야 하나요?
0
102
2
socket connect 오류
0
96
2
강의를 들으면서 궁금한 점
0
97
2
DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?
0
60
2
커리큘럼 질문
0
98
2
put 요청은 언제
0
90
3
typeorm VS prisma
0
347
2
142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.
0
76
2
User 데코레이터 버그 수정 전달드립니다.
0
67
1
git 주소 부탁드립니다.
0
112
2
nest g resource 명령어 에러
0
99
2
로그인 엔드포인트 관련 질문
0
84
2
yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우
0
147
3
"흔히 사용되는 메서드" 강의 관련 질문입니다~
0
95
2

