如何使用Joi验证对象数组? [英] How to validate array of objects using Joi?

查看:726
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆