nodejs和express中的自定义字段验证和错误处理

我正在尝试在注册时添加用户名字段,我已经使用express-validator进行了验证以确保它不为空,因为我希望每个人都拥有自己的唯一用户名。就像我们使用电子邮件检查用户是否存在一样,我想还要使用用户名...请在下面检查我的代码

有什么办法可以显示用户名错误以及电子邮件错误吗?

try {
        let user = await User.find({ 'email': email, 'username': username })


        //Check if user exists
        if (user) {
            res.status(400).json({
                errors: [{ msg: 'user with that name or username already exist' }]
            })
        }
评论
  • Otto
    Otto 回复

    You should use findOne (it returns null if document doesn't exists) instead as find returns and array so

    if(user)
    

    永远是真的,如下所示

    try {
            let user = await User.findOne({ 'email': email, 'username': username })
    
        //Check if user exists
            if (!user) { 
               res.status(400).json({
                    errors: [{ msg: 'user with that name or username already exist' }]
                })
            }
    
    
    }
    

    此外,您的查询将查找电子邮件和用户名的组合,即您提供的用户名或电子邮件都存在的地方