无法使用is-my-json-valid npm模块正确验证对象数组

时间:2019-05-02 10:52:40

标签: javascript node.js swagger swagger-ui request-validation

我正在使用is-my-json-valid npm模块来验证传入的HTTP请求。我定义了架构以验证对象数组。这个npm模块无法正确验证数组中的对象。

我已经定义了如下所述的架构:

var validator = require('is-my-json-valid')


var validate = validator({
    required: true,
    type: 'object',
    properties: {
        name: {
            required: true,
            type: 'string'
        },
        author: {
            required: true,
            type: 'string'
        },
        libraries: {
            required: true,
            type: 'array',
            items: {
                type: 'object',
                properties: {
                    id: {
                        required: true,
                        type: 'number'
                    }
                },
                additionalProperties: false
            }
        }
    },
    additionalProperties: false
});

const obj = {
    name: 'myn4m3',
    author: 'mys3lf',
    libraries: []
};
console.log('should be valid', validate(obj));
// console.log('should not be valid', validate({}))
console.log(validate.errors) 

实际: 应该是正确的 空

预期: 从那时起,libraries数组具有强制性的“ id”属性,因为我没有提供它应引发验证错误,但它为true。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您需要在数组中添加对象

更改此

const obj = {
name: 'myn4m3',
author: 'mys3lf',
libraries: []

};

对此

const obj = {
name: 'myn4m3',
author: 'mys3lf',
libraries: [{}]

};