Javascript 在节点js中执行删除之前,如何让用户确认删除?
我有一个post请求,在提交时必须删除mongodb中的记录,但在mongodb中执行指令之前,我需要与用户确认。以下是我所拥有的不起作用的东西:Javascript 在节点js中执行删除之前,如何让用户确认删除?,javascript,node.js,mongodb,forms,ejs,Javascript,Node.js,Mongodb,Forms,Ejs,我有一个post请求,在提交时必须删除mongodb中的记录,但在mongodb中执行指令之前,我需要与用户确认。以下是我所拥有的不起作用的东西: // DeleteUser router.post("/deleteUser", (req, res) => { const { email } = req.body; function confirmDelete() { let result = confirm(
// 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
函数;它应该是一个浏览器对象!我如何使这个逻辑弹出一个对话框,要求用户确认删除;单击“确定/是”时继续,单击“取消”时终止。检查/确认仅限于客户端。您不能在后端中执行此操作。如果请求到达,则删除该用户。客户端可以决定显示任意数量的警告、确认和警报框
您可以生成一个唯一的令牌,将其发送给客户端,并且仅当客户端提交第二个请求(其中包含该令牌)时,才可以实际删除该用户。但是您不能保证客户端在发送第二个请求之前向用户显示确认框,客户端可以立即提交第二个请求。然后,您就从开始的地方结束了:确认对话框是一个客户端特有的东西