首页 > 解决方案 > 如何检查用户名和电子邮件是否已经注册?

问题描述

我尝试了各种方法,但似乎无法解决这个问题。我尝试过的最新方法是创建两个“findOne”函数,但仍然失败。

         const checkUser = registerLogin.findOne({ username }, (err, user) => {
          return user;
         });

         registerLogin.findOne({ email }, (err, user) => {
            if (err)
                res.send(err);

            else if (checkUser)
                res.status(403).json({ registerErrRequired: "Username is taken." });    

            else if (user)
                    res.status(403).json({ registerErrRequired: "Email is already in use." });

            else if (!REGEX.test(email))
                res.status(403).json({ registerErrRequired: "Invalid email." });  

标签: javascriptnode.jsexpressmongoose

解决方案


您可以使用$or运算符来执行此操作。就像是:

registerLogin.findOne({$or: [{email: email}, {username: username}]}, (err, user) => {...})

推荐阅读