Se ho due campi, vorrei solo verificare quando almeno un campo è una stringa non vuota, ma fallire quando entrambi i campi sono stringhe vuote.Utilizzando Joi, è necessario che uno dei due campi non sia vuoto
Qualcosa di simile non convalida
var schema = Joi.object().keys({
a: Joi.string(),
b: Joi.string()
}).or('a', 'b');
Quando convalida contro
{a: 'aa', b: ''}
Il or
condizione solo test per la presenza di una chiave a
o b
, ma fa verificare se la condizione per a
o b
è vero. Joi.string()
non riuscirà per le stringhe vuote.
Ecco succo con alcuni casi di test per dimostrare
http://requirebin.com/?gist=84c49d8b81025ce68cfb
Grazie @ Kevin-wu che funziona per me :) – Brendan
Questo funziona, ma in realtà non è scalabile - se aveste due insiemi di questi, avreste bisogno di quattro alternative, se si dispone di tre serie di questi allora avresti bisogno di otto. Non sembra che ci sia un modo migliore però. –