React-nodebird (13) - 게시글 좋아요, 삭제, 닉네임 수정

장택진·2022년 11월 7일
0

React-nodebird

목록 보기
13/15

게시글 좋아요 구현

front/component/post.js

front/reducer/post.js

front/saga/post.js

back/routes/post.js

데이터의 흐름을 기억하면서 코드를 작성하는 것이 좋습니다.
dispatch한 postCard.js → 리듀서 → 사가 →백엔드 라우터순으로 작성하면 됩니다.

front/saga/post.js

axios.patch(/post/${data}/like, data) 로 data를 2번쓰게 되면 불필요한 용량만 차지하기 때문에 axios.patch(/post/${data}/like)로 줄여주는 것이 좋습니다.

back/routes/post.js

없는 게시글에 좋아요를 누를 수는 없으니 백엔드에서는 게시글의 존재유무를 한번 더 검사하여 안전하게 서비스를 이용할 수 있도록 해주는 것이 좋습니다.

또한, 시퀄라이즈는 MySQL을 사용하므로 관계 메서드가 생성됩니다. 예를 들면,

  • post.addLikers : 추가
  • post.removeLikers : 삭제
  • post.getLikers : 정보 가져오기, include를 통해 데이터를 가져와서 상대적으로는 적게 사용됨
  • post.setLikers : 수정

게시글 제거

DB에서 사용되는 CRUD(Create, Read, Update, Delete)에서 시퀄라이즈 사용하고 있는 메서드는 아래와 같습니다.

  • findOne, findAll: 레코드 조회
  • create: 생성
  • destroy: 제거
  • update: 수정

back/routes/post.js

destroy 메서드를 이용해서 지워주면 됩니다. 파라미터로 조회한 게시글 id와 본인이 작성한 게시글만 삭제할 수 있게 req.user.id를 조회하여 삭제해주면 됩니다.

닉네임 수정하기

back/routes/user.js

수정할 수 있는 put, patch 메서드 중 부분만 수정할 수 있는 patch를 이용하고, update 메서드의 항목으로 req.body에 들어있는 nickname을 수정하고, where를 내 계정의 닉네임만 변경할 수 있도록 조건을 부여해줍니다.

profile
필요한 것은 노력과 선택과 치킨

0개의 댓글