我正在设置一个邮寄电话来注册新用户。该代码检查用户模型中是否存在电子邮件。如果没有,那么它会创建一个新用户。然而,我刚刚意识到我还需要检查用户名是否已经存在。我对设置 API 调用还很陌生,所以我不确定如何重构/添加另一个fineOne 调用或其他方法,以在创建新用户之前查看用户名是否也存在。
router.post("/register", (req, res) => {
User.findOne({ email: req.body.email }).then(user => {
if (user) {
return res.status(400).json({ email: "Email already exists" });
} else {
const newUser = new User({
username: req.body.username,
email: req.body.email,
password: req.body.password
});
}
});
});
所以,我需要添加代码来查看用户名是否存在。如果存在,则返回 404 消息并继续检查该电子邮件是否存在。然后我可以添加新用户。
最佳答案
带有析取的查找有一些额外的语法。它看起来像这样:
User.findOne({ $or:[ { email: req.body.email }, { username: req.body.username } ]}).then...
关于javascript - 在 API 帖子中注册用户时设置电子邮件和用户名的多重验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503625/