【发布时间】:2021-03-17 16:18:36
【问题描述】:
我在我的快递应用程序中使用了 passportjs,我刚刚实现了检查 mongoDB 以查看“电子邮件”或“企业名称”是否已注册的代码。我的代码大部分都在工作,所以我只提供我认为必要的部分。
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' 变量将错误消息呈现给我的 ejs。但是,我希望能够显示 2 条单独的消息,一条用于“用户名”是否已存在,另一条用于“企业名称”是否已存在。我也尝试过进行设置,因此我进行了 2 次单独的搜索,一次用于“用户名”,一次用于“企业名称”,但我觉得如果我可以避免调用额外的搜索,那会很好。
【问题讨论】:
标签: node.js mongodb express mongoose passport.js