我有一个post请求,提交时必须删除mongodb中的记录,但在mongodb中执行指令之前,我需要与用户确认。下面是我的一些不起作用的东西:
// DeleteUser
router.post("/deleteUser", (req, res) => {
const { email } = req.body;
function confirmDelete() {
let result = confirm(
"Are you sure that you want to delete " + allUsers[i].name + "?"
);
if (result) {
// Delete Logic
User.findOneAndDelete({ email: email }, (err) => {
if (err) {
console.log(err);
}
console.log("One user deleted successfully!");
});
}
}
confirmDelete();
setTimeout(res.redirect("back"), 5000);
});我收到一个错误:
ReferenceError: confirm is not defined我认为confirm()不是一个node.js函数;它应该是一个浏览器对象!如何使此逻辑弹出一个对话框,要求用户确认删除;当用户单击Ok/Yes时继续,单击Cancel时终止
发布于 2021-05-10 03:23:21
该检查/确认是仅限客户端的事情。你不能在你的后端这样做。如果请求到达,则删除该用户。客户端可以决定显示任意数量的警告、确认框和警告框。
您可以生成一个唯一的令牌,将其发送给客户端,并且只有当客户端提交包含该令牌的第二个请求时,才会真正删除该用户。但是您不能保证客户端在发送第二个请求之前确实会向用户显示一个确认框,客户端可以立即提交第二个请求。您最终回到了开始的地方:确认对话框是仅限客户端使用的东西。
https://stackoverflow.com/questions/67461538
复制相似问题