当使用 Joi 进行验证时,我经常有两个非常相似的模式。一种用于创建资源,另一种用于更改资源。更改资源的模式通常是相同的,所有属性都是可选的。Joi 有没有办法采用模式并使所有值都是可选的?
问问题
735 次
2 回答
4
正如第一个答案所说,您可以使用.keys()
,但让我举个例子:
const Joi = require('joi')
const username = Joi.string()
const updateUser = Joi.object().keys({
username
})
const createUser = Joi.object().keys({
username: username.required()
})
updateUser.validate({}) // OK { value: {} }
createUser.validate({}) // ERROR { value: {}, error: Error: '"username" is required' }
我通过阅读“hapi.js 入门”一书第六章了解到这一点。
我希望它对你有用。
于 2021-04-30T14:48:58.090 回答
1
您可以使用扩展 joi 模式.keys
于 2020-10-30T17:12:55.287 回答