使用 Mongoose、Express 删除用户

Nic*_*ati 3 crud mongoose mongodb node.js express

我是 Express 和 MongoDB 的新手。我在 Node.js 中创建了一个小型 Web 应用程序,并使用 Express.js 和 Mongoose。我可以成功创建用户并让用户登录,但我无法让用户删除他们的帐户。

我的路由文件夹中有一个 user.js 文件,我在其中编写代码以进行注册、登录、删除等。这是 GitHub 上项目的链接(https://github.com/NicholasGati/shopping-购物车-2)。删除用户帐户的按钮位于 views/user/edit.hbs 中。我把按钮放在一个表格里。当我单击按钮时,用户不会被删除,并且由于某种原因我被重定向到“/”。注意:我的 routes/user.js 文件中的 '/:id' 变成了 '/user/:id'。

下面是 routes/user.js 文件中删除方法的代码:

router.delete('/:id', isLoggedIn, (req, res, next) => {
  User.findOneAndRemove({_id: req.params.id}, (err) => {
    if (err) {
      req.flash("error", err);
      return res.redirect("/user/edit");
    }

    req.flash("success", "Your account has been deleted.");
    req.logout();
    return res.redirect("/shop/coffee");
  });
});
Run Code Online (Sandbox Code Playgroud)

这是 views/user/edit.hbs 中的表格:

<form action="/user/{{user.id}}" method="delete">
  <div class="form-group">
    <button type="submit" class="btn btn-danger">Delete Account</button>
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

此外,这里是 isLoggedIn 函数:

function isLoggedIn(req, res, next) {
  if (req.isAuthenticated()) {
    return next();
  }
  res.redirect("/");
}
Run Code Online (Sandbox Code Playgroud)

Sae*_*adi 6

既然你是新手,我想我应该带你自己去找问题:)

  1. 确保表单方法。
  2. 确保调用了删除用户的路由。

如果标记似乎不正确,我很抱歉,因为我正在使用手机发布此答案。