개발하고 싶은 초심자
2-5. 220531 댓글 달기 및 댓글 삭제 기능 구현 본문
1. 댓글 달기 기능 구현을 위한 모델 생성
각각의 게시글마다 달리는 다른 유저들의 댓글들이 있을 것이고, 그 데이터를 저장해주기 위해 모델을 먼저 생성했다.
일단 모델에 들어갈 속성은 users모델에서 참조해오는 외래 키인 userId와 posts모델에서 참조해오는 외래 키인 postId, postComments 모델의 속성인 comment가 포함된다.
userId와 postId는 숫자, comment는 문자열 형태로 들어간다.
2. 라우트 구성
댓글은 게시글에 다는 것이기 때문에 /posts에 해당한다.
댓글이기 때문에 /posts/comment로 라우트를 지정해주고 아직 작성하지는 않았지만 미리 컨트롤러를 연결해준다.
3. 컨트롤러 작성
댓글을 달 때 가장 먼저 확인해봐야 하는 조건은 토큰을 가진 사용자가 댓글을 달겠다는 요청을 했을 때 정말 검증이 된 토큰을 가진 사용자인지 확인하는 것이다.
isAuthorized()라는, 토큰을 검증하는 함수를 미리 만들어두었기 때문에 함수를 이용하여 먼저 로직을 작성한다.
검증이 되었다는 조건을 먼저 만들어둔 다음 userId가 없거나 postId, 댓글의 내용이 없다면 상태 코드 400을 띄운다.
그렇지 않은 경우에 댓글을 달 수 있도록 create 하고 data에 댓글 내용과 함께 상태 코드 200을 띄운다.
4. 포스트맨을 활용한 요청, 응답 받기
① 댓글 달기
② 댓글 수정
③ 댓글 삭제
상태코드 204를 받으며 데이터베이스에서 삭제된 것을 확인할 수 있었다.
'Project in Codestates > Final Project' 카테고리의 다른 글
3-1. 220602 소셜 로그인을 위한 포스트맨 요청 및 응답 확인하기 (0) | 2022.06.02 |
---|---|
2-6. 220601 사용자 정보 가져오기 (0) | 2022.06.01 |
2-4. 220530 게시글 생성 및 수정, 삭제 기능 구현, multer를 이용한 단일 업로드 기능 구현 (0) | 2022.05.30 |
2-3. SR 피드백 이후 계획 (0) | 2022.05.27 |
2-2. 220526 소셜 로그인과 소스트리 (0) | 2022.05.26 |
Comments