javascript - 在 API 帖子中注册用户时设置电子邮件和用户名的多重验证

标签 javascript node.js express mongoose

我正在设置一个邮寄电话来注册新用户。该代码检查用户模型中是否存在电子邮件。如果没有,那么它会创建一个新用户。然而,我刚刚意识到我还需要检查用户名是否已经存在。我对设置 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/

相关文章:

html - 使用选举框架的面部识别

Node.js 已停止上传

JavaScript 错误未显示在控制台中?

javascript - 如何使用 express js 创建一个简单的 html 服务器

javascript - 包括在空格后找不到字符

javascript - 我如何 stub fs 回调的注入(inject)参数以消除在测试套件中接触文件系统的需要?

node.js - Node.js 中的模块初始化并在请求之间保留其状态

javascript - FluentAutomation 和查找元素同级

javascript - 如何在对象内部使用解构赋值

node.js - Jade 模板 HTML 括号撇号和多行问题