如何解决如何根据上下文中的值建立Joi when条件?
Joi的ref documentation建议使用rearrange_model_factors
创建的引用可以引用上下文对象中的值。 Joi的any.when documentation建议Joi.ref
参数接受一个引用。但是,我无法使用以下简单用法:
condition
此代码将导致通过验证。但是,我希望它会失败。我想念什么?
解决方法
您需要使用boolean().valid(true)
,以便仅布尔值true
通过!
boolean().truthy()
接受其他值的列表,这些值被视为有效布尔值。例如。 boolean().truthy('YES','Y')
。 Documentation
joi
版本: 17.2.1
const Joi = require('joi');
const schema = Joi.object({
year: Joi.number().when(
Joi.ref('$flag'),{
is: Joi.boolean().valid(true),then: Joi.number().min(2000),},),});
const value = {
year: 1999,};
// fails
const context = {
flag: true
};
// passes
const context = {
flag: false
};
const result = schema.validate(value,{ context });
console.log(result.error);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。