如何检查用户名和电子邮件是否已在注册/注册路径中使用?

时间:2019-09-20 08:56:34

标签: mongodb express

我在一个React / Express / MongoDB项目中, 在服务器的注册路径中,我成功地检查了电子邮件是否已经被接收, 但是,现在我想同时检查电子邮件和用户名是否已被占用

我现在的代码仅用于电子邮件检查(有效):

User.findOne({ email: req.body.email }).then(user => {
    if (user) {
      return res.status(400).json({ email: "Email already exists" });
    } else {
      const newUser = new User({
        name: req.body.name,
        email: req.body.email,
        password: req.body.password
      });

我尝试通过电子邮件和用户名检查(不起作用)来完成此操作:

User.findOne(
    {
      $or: [{ email: req.body.email }, { username: req.body.username }]
    },
    function(err, docs) {
      if (docs.length !== 0) {
        if (docs[0].email === req.body.email) {
          errors.username = "Email already exists";
        } else if (docs[0].username === req.body.username) {
          errors.username = "Username already exists";
        }
      } else {
        const newUser = new User({
          email: req.body.email,
          username: req.body.username,
          firstname: req.body.firstname,
          lastname: req.body.lastname,
          sexe: req.body.sexe,
          mobilePhone: req.body.mobilePhone,
          departement: req.body.departement,
          city: req.body.city,
          password: req.body.password
        });

我得到的错误:

TypeError: Cannot read property 'email' of undefined

有人可以帮我吗? :D

谢谢

0 个答案:

没有答案