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