如何检查用户名和电子邮件是否已经注册?

时间:2019-09-18 04:30:15

标签: javascript node.js express mongoose

我尝试了各种方法,但似乎无法解决此问题。我尝试过的最新方法是创建两个“ 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." });  

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

请在下面找到代码段:

const withNavigationOptions = Component => ({ ...props }) => {
  const ComponentWithNavigation = Component;
  ComponentWithNavigation.navigationOptions = ({ navigation }) => {
    const { title } = navigation.state.params;
    return {
      header: (
        <Navbar
          navigation={navigation}
          title={title}
          onBackPress={() => navigation.navigate('Dashboard')}
        />
      )
    };
  };

  return <ComponentWithNavigation {...props} />;
};

export default withNavigationOptions;

});