簡體   English   中英

Joi:如何驗證 2 arrays 完全不同

[英]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'))做到了。

您可以使用contextin

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM