front/saga/post.js데이터의 흐름을 기억하면서 코드를 작성하는 것이 좋습니다.
dispatch한 postCard.js → 리듀서 → 사가 →백엔드 라우터순으로 작성하면 됩니다.
back/routes/post.jsaxios.patch(
/post/${data}/like
, data) 로 data를 2번쓰게 되면 불필요한 용량만 차지하기 때문에 axios.patch(/post/${data}/like
)로 줄여주는 것이 좋습니다.
없는 게시글에 좋아요를 누를 수는 없으니 백엔드에서는 게시글의 존재유무를 한번 더 검사하여 안전하게 서비스를 이용할 수 있도록 해주는 것이 좋습니다.
또한, 시퀄라이즈는 MySQL을 사용하므로 관계 메서드가 생성됩니다. 예를 들면,
- post.addLikers : 추가
- post.removeLikers : 삭제
- post.getLikers : 정보 가져오기, include를 통해 데이터를 가져와서 상대적으로는 적게 사용됨
- post.setLikers : 수정
DB에서 사용되는 CRUD(Create, Read, Update, Delete)에서 시퀄라이즈 사용하고 있는 메서드는 아래와 같습니다.
back/routes/post.js
- findOne, findAll: 레코드 조회
- create: 생성
- destroy: 제거
- update: 수정
destroy 메서드를 이용해서 지워주면 됩니다. 파라미터로 조회한 게시글 id와 본인이 작성한 게시글만 삭제할 수 있게 req.user.id를 조회하여 삭제해주면 됩니다.
back/routes/user.js
수정할 수 있는 put, patch 메서드 중 부분만 수정할 수 있는 patch를 이용하고, update 메서드의 항목으로 req.body에 들어있는 nickname을 수정하고, where를 내 계정의 닉네임만 변경할 수 있도록 조건을 부여해줍니다.