【问题标题】:How do I make user confirm deletion before doing so in node js?在节点 js 中这样做之前,如何让用户确认删除?
【发布时间】:2023-03-20 16:23:01
【问题描述】:

我有一个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 时终止?

【问题讨论】:

    标签: javascript node.js mongodb forms ejs


    【解决方案1】:

    检查/确认是仅限客户的事情。你不能在你的后端做到这一点。如果请求到达,您将删除该用户。客户可以决定显示任意数量的警告、确认和警告框。

    可以生成一个唯一令牌,将其发送给客户端,并且仅当客户端提交包含该令牌的第二个请求时才实际删除用户。但是您不能保证客户端在发送第二个请求之前确实向用户显示一个确认框,客户端可以立即提交第二个请求。您最终会回到起点:确认对话框是客户端专用的。

    【讨论】:

      猜你喜欢
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2018-12-25
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多