Deleting Reviews
PULL OPERATOR IS USED TO DELETE BY PULLING THE WANTED REVIEW FROM REVIEWS ARRAY.
// DELETE REVIEW
app.delete("/listings/:id/reviews/:reviewId", async (req, res) => {
let { id, reviewId } = req.params;
await Listing.findByIdAndUpdate(id, { $pull: { reviews: reviewId } });
await Review.findByIdAndDelete(id);
res.redirect(`/listings/${id}`);
});
IN SHOW.EJS A BUTTON IS CREATED WHICH LEADS TO THE REQUIRED ROUTE.
<h4>All Reviews</h4>
<% for(review of listing.reviews) { %>
<div class="card col-5 ms-3 mb-4">
<div class="card-body">
<p class="card-title"><b>Abhii</b></p>
<p class="card-text"><%= review.comment %></p>
<p class="card-text"><%= review.rating %> stars</p>
</div>
<form method="post" action="/listings/<%=listing._id%>/reviews/<%=review._id%>?_method=delete">
<button class="btn btn-dark btn-small">Delete</button>
</form>
</div>
<% } %>



Comments
Post a Comment