我有一个我不可能知道的键名的对象——它们是由用户创建的。但是我确实知道它们(键)将存储什么值,并且它们(值)将是 ISO 字符串。如何验证这些值?并且,可选地,我如何验证 uknown 对象的键,即:
key: Joi.string().min(2).max(25)
我已经尝试过的是基于 Joi API 文档:
使用 Joi.object([schema]) 而不是普通的 JS 对象的另一个好处是>您可以在对象上设置任何选项,例如允许未知键,例如:
const schema = Joi.object({ arg: Joi.string().valid('firstname', 'lastname', 'title', 'company', 'jobtitle'), value: Joi.string(), }).pattern(/firstname|lastname/, Joi.string().min(2));
我从例子中了解到的是arg
key 代表Joi.object()
's key
,并且value
代表 it's value
。
我的例子:
campaign: Joi.object({
arg: Joi.string().valid( 'unknown' ),
value: Joi.date().iso(),
}).pattern( /unknown/, Joi.string().min(2).max(25) )
我的意见;
campaign: { g_ad_adwords: "2017-01-19T11:33:26.205Z" }
我的错误:
"campaign" 失败,因为 ["g_ad_adwords" is not allowed]