[英]Joi: how to validate that 2 arrays are completely different
我有這個 Joi object 架構
const Joi = require('joi'); const ruleSchema = Joi.object({ conditions: Joi.array().items(Joi.string().required()).unique().default([]), restrictions: Joi.array().items(Joi.string().required()).unique().default([]), });
我想驗證限制和條件沒有任何共同值。
我嘗試使用Joi.string().disallow(Joi.ref('conditions'))
但它沒有用, Joi.string().disallow(...Joi.ref('conditions'))
也沒有Joi.string().disallow(Joi.ref('..conditions'))
做到了。
const Joi = require('@hapi/joi');
const schema = Joi.object({
conditions: Joi.array()
.items(Joi.string().required())
.unique()
.default([]),
restrictions: Joi.array()
.items(Joi.string().invalid(Joi.in('$conditions')))
.unique()
.default([])
});
const validObj = {
conditions: ["a", "b", "c"],
restrictions: ["d"]
};
const invalidObj = {
conditions: ["a", "b", "c"],
restrictions: ["a"]
};
// VALID
schema.validate(validObj, { context: validObj });
// INVALID
schema.validate(invalidObj, { context: invalidObj });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.