我是新手,对于Express和MongoDB都不熟悉。我在Node.js中创建了一个小型Web应用程序,并使用Express.js和Mongoose。我已经成功地创建了一个用户并让用户登录,但是我无法让用户删除他们的账户。
我在我的路由文件夹中有一个user.js文件,我在其中编写代码来进行注册、登录、删除等操作。这里是项目的GitHub链接:https://github.com/NicholasGati/shopping-cart-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");
});
});
这里是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>
此外,这里是isLoggedIn函数:
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
res.redirect("/");
}
delete
方法。 - Heartbit