Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
express-validator lanza errores en campos válidos

Estoy usando express-validator para validar la entrada del usuario en la API mecanografiada. mi cadena de validación:

 export const userValidator = [ body("email").isEmpty().withMessage("email is required"), body("email").isEmail().withMessage("email is not valid"), body("username") .isEmpty() .withMessage("first name has to be longer then 2 charecters"), body("username").isLength({ min: 2 }).withMessage("first name is required"), body("phoneNum").isNumeric().withMessage("enter a valid phone number"), body("password").isEmpty().withMessage("password is required"), body("password") .isLength({ min: 8 }) .withMessage("password must be at least 8 characters"), body("confiremdPassword").custom((value: string, { req }) => { if (value !== req.body.password) { throw new Error("password have to match!"); } else { return true; } }), ];

y estoy buscando errores en auth.ts :

 const errors = validationResult(req); if (!errors.isEmpty()) { const error: ServerError = new Error("Validation failed"); error.status = 422; error.data = errors.array(); throw error; }

pero el resultado de esto es muy raro porque obtengo una serie de todos los posibles errores sin razón...

 [

{ value: 'bro1@bro.com', msg: 'email is required', param: 'email', location: 'body' }, { value: 'brrrrrro', msg: 'el primer nombre debe ser más largo que 2 charecters', param: 'username', location: 'body' }, { value: undefined, msg: 'enter a valid phone number', param: 'phoneNum', location: 'body' }, { value: 'brorrrrrrrr' , msg: 'se requiere contraseña', param: 'contraseña', ubicación: 'cuerpo' } ] como puede ver, incluso me dice que el correo electrónico está vacío aunque me dice el valor.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tienes que invertir tu lógica.

En su código, le está diciendo al validador expreso que el campo de correo electrónico DEBE estar vacío, de lo contrario, lo considerará como un error.

Simplemente agregue .not() antes del validador .isEmpty() .

body("email").not().isEmpty().withMessage("email is required")

Si su campo es obligatorio, también puede agregar .exists()

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda