2017-10-14 3 views
0

J'utilise express-validator pour valider et assainir mes formulaires côté serveur. Une grande partie de la validation et de la désinfection sont communes à tous les domaines. Par exemple, je faisExiste-t-il un moyen d'assainir tous les champs dans un formulaire particulier en une seule fois?

check('field name here") 
    .exists() 
    .trim() 
    .escape() 
    .xss() 

sur presque tous les champs et les spécifiant manuellement à travers tous les différents domaines devient très redondant. Existe-t-il un moyen d'appliquer les conditions de validation et d'assainir tous les champs ensemble?

Répondre

1

Vous pouvez passer un tableau à check, par exemple:

check(['field1', 'field2', 'field3']) 
    .exists() 
    .trim() 
    .escape() 
    .xss(); 

Il est évident que cela nécessite encore une liste explicite des noms de champs plutôt que d'appliquer à « tous » mais sans une liste explicite il n'y aurait aucun moyen pour le validateur de savoir quels champs sont censés exister.

+0

En fait, on * pourrait * utiliser '*', mais cela ne s'applique qu'à un seul niveau. S'il y a des champs imbriqués qui doivent passer par le même processus, alors vous devez faire '*. *' Et ainsi de suite pour chaque niveau – gustavohenke

+0

@gustavohenke Je ne suis pas, comment peut-il effectuer une vérification 'exists()' si vous ne spécifiez pas le nom du champ? – skirtle

+0

Eh bien, vous avez raison :) Mais si la validation était une autre que cela serait plus correct. – gustavohenke