Javascript 当对象具有必需字段时,Joi-allow({})不起作用
对于Joi,我希望使一个空对象(没有自己属性的对象)有效,或者使一个具有特定结构的对象有效。但我不知道怎么做。以下是我的尝试,但它不起作用。有人能给我其他建议吗Javascript 当对象具有必需字段时,Joi-allow({})不起作用,javascript,node.js,joi,Javascript,Node.js,Joi,对于Joi,我希望使一个空对象(没有自己属性的对象)有效,或者使一个具有特定结构的对象有效。但我不知道怎么做。以下是我的尝试,但它不起作用。有人能给我其他建议吗 joi.validate({}, joi.object({ a: joi.string().required(), b: joi.string().required(), }).optional().allow({})); 如果我发送一个空对象,上述代码将失败。但是请看,我在.allow() 所以我想写一个joi模式
joi.validate({}, joi.object({
a: joi.string().required(),
b: joi.string().required(),
}).optional().allow({}));
如果我发送一个空对象,上述代码将失败。但是请看,我在.allow()
所以我想写一个joi模式来接受以下有效的数据结构
{}
Or
{ a: 'some-string', b: 'some-string' }
我想这可能会解决你的问题
const obj = {};
const length = Object.keys(obj).length;
const { error: joiError, value: joiValue } = length > 0 ? joiSchema.validate(obj) : true;
joiSchema = Joi.object().keys({
a: joi.string().required(),
b: joi.string().required(),
});
我想这可能会解决你的问题
const obj = {};
const length = Object.keys(obj).length;
const { error: joiError, value: joiValue } = length > 0 ? joiSchema.validate(obj) : true;
joiSchema = Joi.object().keys({
a: joi.string().required(),
b: joi.string().required(),
});