Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

657
Vistas
¿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.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

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; };
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda