2017-04-23 47 views
5

Posta alanımı kontrol etmek için express-validator kullanıyorum. Benim Sorunum, sadece bazı alanların belirli bir değeri varsa, bazı alanları yapmak istiyorum. örn:Düğüm Js Express Validator zorunlu alanın yalnızca başka bir değeri var ise

if person_organisation is true: 
person_organisation_name must be required 

if person_organisation is false: 
person_first_name must be required 

Doğrulama Şeması bu kurallar koymak için herhangi bir yolu var mı ??

cevap

4

özel doğrulama oluşturun:

app.use(expressValidator({ 
customValidators: { 
    checkPersonName: function(name, isPerson) { 
     return isPerson === true ? name != '' : true; 
    }, 
    checkOrganisationName: function(name, isPerson) { 
     return isPerson === false ? name != '' : true; 
    } 
} 
})); 

ve kullanım:

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 
    }); 
}); 
+0

ihtiyacım Tam olarak ne, teşekkür ederim. – medKHELIFI

+0

Yardımsever olmaktan mutluluk (: – num8er

İlgili konular