在保存用户(使用passportjs)之前,请检查mongoose中的2个字段



我在我的express应用程序中使用passportjs,我刚刚实现了检查mongoDB以查看"email"或"businessName"是否已经注册的代码。我的代码大部分都在工作,所以我只提供我认为必要的部分。


User.findOne({
$or: [
{ username: { $regex: req.body.username, $options: "i" } },
{
businessName: { $regex: req.body.businessName, $options: "i" },
},
],
}).then((person) => {
// email or businessName already exist
if (person) {
res.render("signup", {
exists: "This email is already registered",
info: req.body,
errors: errorsObj,
msg: "Please check the form for errorsss",
});
} else {
const user = new User({
businessName: req.body.businessName,
username: req.body.username,
password: theHash,
});
user.save(function (err) {
if (err) {
return next(err);
}
//succesful - redirect to login
res.redirect("/login");
});
}
});

正如您所看到的,我搜索了2个字段,并使用"exists"变量将错误消息呈现给我的ejb。然而,我希望能够显示两条单独的消息,一条用于"username"是否已经存在,另一条用于如果"businessName"已经存在。我也试过设置它,所以我做了两个单独的搜索,一个是"username",一个为"businessName",但我觉得如果我能避免额外的搜索,那就太好了。

}(。然后((person(=>{

if ( person.username === req.body.username ){
//render username message
}
if ( businessName ===  person.businessName ) {
//render busniness name message
}

最新更新