私は次のスキーマを持っています:
var testSchema = Joi.object().keys({
a: Joi.string(),
b: Joi.string(),
c: Joi.string().when('a', {'is': 'avalue', then: Joi.string().required()})
});
ただし、c
フィールド定義に条件を追加して、次の場合に必要になるようにします。
a == 'avalue' AND b=='bvalue'
どうやってやるの?
2つのwhen
ルールを連結できます。
var schema = {
a: Joi.string(),
b: Joi.string(),
c: Joi.string().when('a', { is: 'avalue', then: Joi.string().required() }).concat(Joi.string().when('b', { is: 'bvalue', then: Joi.string().required() }))
};
Gergo Erdosiの答えは、Joiではうまくいきませんでした14.3.0
、これは私にOR
conditionを与えました:
a === 'avalue' OR b === 'bvalue'
以下は私のために働いた:
var schema = {
a: Joi.string(),
b: Joi.string(),
c: Joi.string().when(
'a', {
is: 'avalue',
then: Joi.when(
'b', {
is: 'bvalue',
then: Joi.string().required()
}
)
}
)
};
これは私にa === 'avalue' AND b === 'bvalue'