구현한 댓글의 형태는 이런식으로 댓글의 대댓글이 있고 또 그것에 대한 대대댓글이 있습니다.
근데, Comment.destroy({id:req.body.commentId})
이렇게 하게 되면, 딱 요청한 id의 댓글만 사라지고, 그것에 대댓글 들은 그대로 남아 있는 것을 확인했습니다. ( db + 클라이언트 ) 그래서, comment에는 CommentId 가 있는데, Comment.belongsTo(db.Comment)
이건 위에서 초록색글씨 처럼 해당 댓글을 갖고 있는 원댓글의 id로서 기능을 할 것입니다. 따라서
Comment.destroy({id:req.body.commentId})
을 하기 전에,
const recomment = await Comment.findAll({
where : { CommentId : commentid }
})
recomment.map(async v => {
await Comment.destroy({ where : { CommentId : v.id }})
})
그리고 대대댓글을 지우고 대댓글을 지웁니다.await Comment.destroy({ where : { CommentId : comment.id }})
그리고 마지막으로 원 댓글을 지워줍니다
await Comment.destroy({ where : { id : commentid, UserId : req.user.id }})
이렇게 하면 댓글을 지우면 그 아래에 있는 대댓글들도 모두 지워지는 것을 확인 할 수 있습니다.