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

420
Visualizações
¿Cómo validar matrices/objetos en express-validator usando body(), verificando solo los campos especificados?

Tengo mis nombres de campo en una matriz como esta:

 const baseFields = [ 'employeeNumber', 'firstName', 'lastName', 'trEmail', 'position' ];

Esos son los campos de entrada que solo tengo que preocuparme por validar.

En el cuerpo de la solicitud, recibo una matriz de objetos. Ejemplo:

 {employeeNumber: 12343, firstName: Will, lastName: Smith, trEmail: smith@will.com, position: Actor, salary: low }, {employeeNumber: 12344, firstName: Chris, lastName: Rock, trEmail: rock@chris.com, position: stuntman, salary: '' }

Quiero validar esta matriz solo con los campos de preocupación en la matriz baseFields .

Este es mi código de validación actual. Descubrí que puedo usar comodines para validar matrices.

 const existsOptions = { checkNull: true, checkFalsy: true }; const postRequiredFields = () => { const validators = []; const validator = body('*.*') .exists(existsOptions) .bail() .isString(); validators.push(validator); return validators; };

El uso de este const validator = body('*.*') verificará todos los campos en la matriz de objetos en el cuerpo. Ya que puedo recibir este mensaje:

 { value: '', msg: 'Invalid value', param: '[1].salary', location: 'body' }

Verá, el campo de salary está siendo revisado. Devolvió un valor no válido porque el segundo índice de la matriz tiene el salario establecido en '' o vacío. Pero nuevamente, el campo de salario no es uno de los campos que necesito validar.

Así que probé algo como este body('baseFields*.*') para verificar toda la matriz de objetos, pero solo los campos de interés, pero no funcionará. No pude encontrar el patrón comodín correcto para mi escenario en línea. La documentación también dice muy poco.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

para verificar un objeto en una matriz, use: *.key

y luego puede hacer un bucle de sus claves y agregarlas dinámicamente:

 const postRequiredFields = () => { const validators = []; baseFields.map((key) => { const validator = body(`*.${key}`) .exists(existsOptions) .bail() .isString(); validators.push(validator); }); return validators; };
about 4 years ago · Juan Pablo Isaza 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