【发布时间】:2021-07-21 16:32:09
【问题描述】:
我正在尝试验证以下内容:
import { showErrors } from "./utils";
const data = {
a: "test",
b: "test",
c: {
// d: ["x", "y"]
}
};
const dataSchema = Joi.object({
a: Joi.string().optional(),
b: Joi.string().optional(),
c: Joi.object({
d: Joi.array().items("x","y")
}).when(Joi.object({
a: Joi.exist(),
b: Joi.exist()
}), {
then:Joi.object({
'd': Joi.optional()
}),
otherwise: Joi.object({
'd': Joi.required()
})
})
});
showErrors(dataSchema.validate(data));
想法是使 c.d 成为可选的,a 和 b 都以 strings 的形式出现。下面的代码应该可以解决问题,但由于某种原因,它总是“需要” c.d !!
任何指针?
【问题讨论】:
标签: javascript validation joi