8
哈皮/穰驗證我有我的路線之一以下驗證:嵌套對象
payload: {
keywordGroups: Joi.array().items(Joi.object().keys({
language: Joi.string().required(),
containsAny: Joi.array().items(Joi.string()).default([]).when('containsAll', { is: [], then: Joi.required() }),
containsAll: Joi.array().items(Joi.string()).default([]).when('containsAny', { is: [], then: Joi.required() }),
notContainsAll: Joi.array().items(Joi.string()).default([]),
notContainsAny: Joi.array().items(Joi.string()).default([])
})).required(),
}
我試圖讓這個containsAny
或containsAll
必須包含至少一個字符串。如果containsAny
爲空,則containsAll
應該至少有一個項目。如果containsAll
是空的,containsAny
至少應該包括一個項目。
但似乎Joi.when
當涉及到對象的數組沒有真正發揮作用。
嘗試更換您的爲:[]爲Joi.array()長度(0)。。該文件表明該條件應該是Joi類型。 https://github.com/hapijs/joi/blob/master/API.md#anywhenref-options – Cuthbert
我想你也這裏創造一個循環依賴。看到這個線程:https://github.com/hapijs/joi/issues/588 – Cuthbert
@Cuthbert我想我的主要問題是,我怎麼能正確地引用這些字段,看到他們在對象的數組。 –