我试图添加重置密码功能。用户输入用户名,电子邮件和全名,当这些值与数据库中的数据匹配时,密码被更改,否则会显示错误。 这就是我在做什么 -
app.post("/reset",function(req,res){
User.findByUsername(req.body.username).then(function(sanitizedUser){
if (sanitizedUser){
sanitizedUser.setPassword(req.body.password, function(){
sanitizedUser.save();
req.flash("success","password resetted");
res.redirect("/login");
});
} else {
req.flash("error","User doesnt exist");
res.redirect("/reset");
}
},function(err){
console.log(err);res.redirect("/");
});
});
但我想比较的不只是用户名,我想比较电子邮件和用户的名字。当我添加 -
User.find({username:req.body.username},{email:req.body.email},{name:req.body.name})
并输入一些错误的数据,页面只是不断重新加载而不是显示错误。
我应该做些什么改变?请帮忙。
我使用express,nodejs,mongodb
答案 0 :(得分:1)
您有重定向循环。
如果是!sanitizedUser
,您会重定向到同一页res.redirect('/reset')
。
这会导致您的网页不断重新加载。
您应该更改以下行:
res.redirect('/reset')
到
res.status(500).send('Some useful error message')