Server
// route
router.delete("/post/:postId", requireSignin, isAdmin, removePost);
// controller
export const removePost = async (req, res) => {
try {
const { postId } = req.params;
const post = await Post.findByIdAndDelete(postId);
return res.json({ ok: true });
} catch (err) {
console.log(err);
}
};
Client
<a onClick={() => handleDelete(item)}>delete</a>
const handleDelete = async (post) => {
try {
const answer = window.confirm("Are you sure you want to delete?");
if (!answer) return;
const { data } = await axios.delete(`/post/${post._id}`);
if (data.ok) {
setPost((prev) => ({
...prev,
posts: prev.posts.filter((p) => p._id !== post._id),
}));
}
} catch (err) {
console.log(err);
}
};