gpt4 book ai didi

javascript - JOI - 验证复杂对象

转载 作者:搜寻专家 更新时间:2023-11-01 00:49:23 24 4
gpt4 key购买 nike

我试了又试,还是想不通:(

这是我需要验证的对象:

let body = {
greeting:
{
stringValue: 'Hello !',
stringListValues: [],
binaryListValues: [],
dataType: 'String'
},
newsletterId:
{
stringValue: '123456789',
stringListValues: [],
binaryListValues: [],
dataType: 'String'
}
};

我需要验证是否有greeting,它有键stringValue 并且不为空。其他值我不关心。

此外,对于第二个对象 newsletterId,它也有键 stringValue 并且不是空的。其他值我不关心。

我想到了只检查根对象,使用这个模式:

const schema = {
greeting: Joi.required(),
newsletterId: Joi.required()
};

我看了很多例子,但我找不到一个有这种结构的例子。

最佳答案

让我们定义一个架构:

const schema = Joi.object().keys({
greeting: Joi.object({
stringValue: Joi.string().required().empty(['', null]),
stringListValues: Joi.array().items(Joi.string()),
binaryListValues: Joi.array().items(Joi.binary())
}).required(),
newsletterId: // same as above
});

然后像这样测试它:

Joi.validate(myObjectToTest, schema, function(error, cleanObject){
console.log(error, cleanObject);
})

可在此处找到完整引用 https://github.com/hapijs/joi/blob/master/API.md

关于javascript - JOI - 验证复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54578135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com