如何在注册控制器中添加条件以检查电子邮件是否已经存在?

编程入门 行业动态 更新时间:2024-10-10 07:30:04

如何在注册控制<a href=https://www.elefans.com/category/jswz/34/1771423.html style=器中添加条件以检查电子邮件是否已经存在?"/>

如何在注册控制器中添加条件以检查电子邮件是否已经存在?

当用户尝试注册并输入详细信息时,将调用此API。我正在查看是否可以添加一个条件,说明电子邮件已经存在。

我想我需要类似的东西:

      const user = await User.find({ email })
      if (user) {
        res.status(400).json({ message: "User with this already exists" })
      }

但是我正在创建一个新用户,因此应将上述查询放在哪里。我对执行顺序感到困惑。

module.exports = {
    registerUser: async(req, res, next) => {
      try {
        var {
          username,
          email,
          password
        } = req.body
        if (password) {
          const salt = bcrypt.genSaltSync(10)
          password = bcrypt.hashSync(password, salt)
        }
        if (!username || !email || !password) {
          return res
            .status(400)
            .json({
              message: "Username, email and password are must"
            })
        }
        if (!validator.isEmail(email)) {
          return res.status(400).json({
            message: "Invaid email"
          })
        }
        if (password.length < 6) {
          return res
            .status(400)
            .json({
              message: "Password should be of at least 6 characters"
            })
        }
        const user = await User.create({
          username,
          email,
          password
        })
        if (!user) {
          return res.status(404).json({
            error: "No user found "
          })
        }
        return res.status(200).json({
          user
        })
      } catch (error) {
        return next(error)
      }
    }
回答如下:

将其放置在注册逻辑之前的try块内,因为如果电子邮件不存在,则find可能会引发抛出和错误。

更多推荐

如何在注册控制器中添加条件以检查电子邮件是否已经存在?

本文发布于:2024-05-07 08:51:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755478.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:器中   电子邮件   条件   如何在

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!