如何使用Joi验证对象数组? [英] How to validate array of objects using Joi?
本文介绍了如何使用Joi验证对象数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将对象数组传递到后端,其中每个对象都包含一个服务名称. 结构如下所示
I am getting an array of objects to backend, where each object contains a service name. The structure looks like below
[{"serviceName":"service1"},
{"serviceName":"service2"},..]
当我在后端获取数组时,我想验证数组中的每个对象都具有serviceName属性.
when I get the array at backend, I want to validate that every object in the array has serviceName property.
我已经编写了以下代码,但是即使我通过了有效的数组,也遇到了验证错误.
I had written the following code, but even though I pass valid array, I am getting validation error.
var Joi = require('joi');
var service = Joi.object().keys({
serviceName: Joi.string().required()
});
var services = Joi.array().ordered(service);
var test = Joi.validate([{serviceName:'service1'},{serviceName:'service2'}],services)
对于上面的代码,我总是收到带有消息的验证错误
For the above code, I am always getting the validation error with message
"value" at position 1 fails because array must contain at most 1 items
推荐答案
将订购替换为项目是可行的.
let Joi = require('joi')
let service = Joi.object().keys({
serviceName: Joi.string().required(),
})
let services = Joi.array().items(service)
let test = Joi.validate(
[{ serviceName: 'service1' }, { serviceName: 'service2' }],
services,
)
作为参考单击此处
这篇关于如何使用Joi验证对象数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文