[英]Joi async custom validation
我需要驗證這個 object:
{a: 'valueA', b: 'valueB'}
要驗證“a”,我需要檢查他的值(valueA)是否存在於我的數據庫中。 如果該值不存在,則 object 無效,否則有效。 如何使用 Joi 驗證器創建自定義 async/await 來實現此目的?
您可以使用any.external()
方法添加外部驗證,它接收 function 作為參數,因此可用於檢查數據庫的值。
接收到的函數的第一個參數是您設置要驗證的 object 的克隆。 它在所有其他驗證之后運行。 如果架構驗證失敗,則不會調用任何外部驗證規則。
const checkData = async (data) => {
const res = await db.find({ name: data.a }) // or any method you use
if (!res) {
throw new Error('Data not found in db!')
}
}
const schema = Joi.string().external(checkData)
await schema.validateAsync({ a: 'valueA', b: 'valueB' })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.