Dan*_*off 5 javascript validation typescript joi
我正在尝试与 Joi 进行验证,但遇到了无法实现的场景。我有一个对象。在某些情况下,对象会有一个 id(编辑),而在其他情况下它不会(创建)。
我想验证在“id”不存在的情况下,应该有几个其他字段。
到目前为止,我唯一有效的解决方案是当 id 为空并且根本没有丢失时。有没有办法匹配不存在的密钥,或者我应该将其更改为 null (有点 hacky)。
joi.object().keys({
id: joi
.number()
.min(0)
.allow(null),
someOtherField1: joi.when("id", { is: null, then: joi.required() })
});
Run Code Online (Sandbox Code Playgroud)
先感谢您!
如果您准备接受nullas anid并希望对其执行条件,我建议将该id字段默认为null. 通过这种方式,您可以从有效负载中省略它并仍然使用Joi.when().
例如:
Joi.object().keys({
id: Joi.number().min(0).allow(null).default(null),
someOtherField1: Joi.string().when('id', { is: null, then: Joi.required() })
});
Run Code Online (Sandbox Code Playgroud)
通过既一个空对象,{}和具有一个目的null id,{ "id": null }将导致:
ValidationError:子“someOtherField1”失败,因为[“someOtherField1”是必需的]
| 归档时间: |
|
| 查看次数: |
5069 次 |
| 最近记录: |