1
我正在使用hapijs編寫微服務。我有一個請求體中有三個參數的API(POST方法)Joi驗證 - 運行時所需的字段條件
- 用戶名
- 姓
- 出生
我打算用JOI做驗證的日期。驗證應該是以下
如果兩個姓氏和出生日期是 在請求
兩個姓氏和出生日期不存在,如果用戶名是應要求應要求用戶ID缺席
我試圖通過以下來實現。它似乎沒有工作。
export const userRequestModel = Joi.object().keys({
lastname: Joi.string().when('uid',
{
is: undefined,
then: Joi.string().required()
}),
dob: Joi.string().when('uid',
{
is: undefined,
then: Joi.string().required()
}),
uid: Joi.string().
when('lastname',
{
is: undefined,
then: Joi.string().required()
}).
concat(Joi.string().when('dob',
{
is: undefined,
then: Joi.string().required()
}))
});
串聯在語法上似乎不正確。它顯示下面的打字錯誤
類型'AlternativesSchema'的參數不能分配給'FunctionSchema'類型的參數。'AlternativesSchema'類型中缺少'Property'arity'參數。
謝謝@Ankh的答案。我從Joi社區成員WesTyler得到了另一個建議。請查看https://github.com/hapijs/joi/issues/1271。它看起來更加優雅。 – Keerthivasan
Hi @Keerthivasan,感謝您的更新,絕對從閱讀中學到了一些東西! – Ankh