Uso express-validator para verificar mis campos de publicación. Mi problema es que quiero que algunos campos sean obligatorios solo si otros campos tienen valores específicos. p.ej:
if person_organisation is true: person_organisation_name must be required if person_organisation is false: person_first_name must be required¿Hay alguna forma de poner estas reglas en el esquema de validación?
Crear validación personalizada:
app.use(expressValidator({ customValidators: { checkPersonName: function(name, isPerson) { return isPerson === true ? name != '' : true; }, checkOrganisationName: function(name, isPerson) { return isPerson === false ? name != '' : true; } } }));y use:
app.post('/registration', function(req, res) { req.checkBody( 'person_first_name', 'Please provide Your first name' ).checkPersonName(req.body.person_organisation); req.checkBody( 'person_organisation_name', 'Please provide valid organisation name' ).checkOrganisationName(req.body.person_organisation); req.getValidationResult().then(function(result) { if (!result.isEmpty()) { res.status(400).send({result: result.array()}); return; } res.json(); // when success do something }); });