2022이전/node.js
Nodejs, express, MongDB를 이용한 CRUD(6)_Controller_like.js
바로퇴장
2020. 1. 12. 20:28
controller/like.js
module.exports = {
toggle_like: async(req, res) => {
const user = req.body.user;
const { board_id } = req.params;
let result = {};
const is_liked = await Like.findOne({$and: [{user: user}, {board: board_id}]});
// 해당 게시물에 좋아요 일때
if(is_liked){
await Like.findByIdAndDelete(is_liked);
result = {data : false}
}
// 해당 게시물에 좋아요 아닐때
else{
//creat에 save명령어도 같이 실행된다.
await Like.create({
user: user,
board: board_id
});
// await liking.save();
result = {data : true}
}
return res.json(result);
}
}
좋아요 Toggle
좋아요를 눌렀을 때, 만약 사용자가 해당 게시물에 좋아요를 안눌렀다면 Like모델에 M:N 형태로 값을 저장하게 된다. 만약 좋아요가 눌렀던 게시물이면 Like테이블에서 해당하는 값을 찾아서 삭제를 하는 식으로 Toggle 기능을 구현을 하였다.