我有一个Joi
规则,我需要将另一个规则合并到该规则中,但是如果它们中的某些规则相交,则应替换该规则,而不是像新规则一样添加。
有什么方法可以代替规则吗?
我尝试过简明扼要的用法,就像.min(0).min(10)
const withMin = (value) => (joi) => joi.min(value);
const bar = Joi.number.min(10);
const rule = withMin(0)(bar)
我只需要min === 0
这个规则,但是实际结果是min === 10
,我也认为min === 0
。
就我而言,我有一些类似Joi.number().min(10)
的架构,并且我的函数应该覆盖此 min :
const baseSchema = Joi.number().min(0);
const withRef = ref => baseSchema.min(Joi.ref(ref));
const schema = {
foo: baseSchema,
bar: withRef('foo'),
};
有了这个,我就有了用于验证某些数字字段的基础架构,并且我想基于现有的基础创建新的架构,例如 inherit 和 override ,因为基础架构可能很多大。因此,我需要bar
min 规则引用到foo
值,但是我发现像Joi.number().min(0).min(Joi.ref(ref))
这样的东西是不正确的。 / p>