Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

419
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!