【发布时间】:2022-01-14 09:02:11
【问题描述】:
我正在使用 joi@^17.4.0 并且有一个如下所示的架构:
settings: Joi.object({
isHidden: Joi.boolean(),
payoutData: Joi.object({
email: Joi.string().email(),
}),
}),
我想输入字符串 'settings.isHidden' 或 'settings.payoutData.email' 而不在架构中对这些字符串中的每一个进行硬编码。有没有一种方法可以让 joi 根据我已经拥有的对象模式知道这些字符串是有效的?目前,当我尝试验证这些字符串时,我收到一个验证错误,指出不允许使用这些键。
要验证的示例对象:
{ 'settings.isHidden': false }
【问题讨论】:
-
我认为仅靠 Joi 是不可能的。使用架构的变体,您可能需要实现自己的验证函数,利用
Hoek.reach()之类的东西来提取规则。 -
@Ankh 正是我所需要的。谢谢!
标签: javascript node.js joi