Delete Listing
IN LISTING.JS
listingSchema.post("findOneAndDelete", async (listing) => {
if (listing) {
console.log("triggered");
await Review.deleteMany({ _id: { $in: listing.reviews } });
}
});
const Listing = mongoose.model("Listing", listingSchema);
WHENEVER A LISTING IS DLETED IT TRIGGERS THE MIDDLEWARE AS THE LISTING IS DELETED BY findByIdAndDelete() IT TRIGGERS findOneAndDelete().
ALWAYS WRITE THE MIDDLEWARE ABOVE THE mongoose.model line
const Listing = mongoose.model("Listing", listingSchema);
ELSE,THE MIDDLEWARE DOESNOT RUN.
APP.JS
app.delete(
"/listings/:id",
wrapAsync(async (req, res) => {
let { id } = req.params;
let deletedList = await Listing.findByIdAndDelete(id);
console.log(deletedList);
res.redirect("/listings");
})
);
SO, WHENEVER A LISTING IS DELETED ALL ITS REVIEWS ARE ALSO DELETED.



Comments
Post a Comment