问题描述
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);