【发布时间】:2017-05-16 01:12:21
【问题描述】:
我是 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("/");
}
【问题讨论】:
标签: node.js mongodb express mongoose crud