не удается правильно проверить массив объектов с помощью модуля is-my-json-valid npm - PullRequest
0 голосов
/ 02 мая 2019

Я использую модуль npm is-my-json-valid для проверки входящего 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) 

Actual: должно быть верным true null

Ожидается:поскольку массив библиотек имел обязательное свойство "id", так как я его не предоставляю, он должен выдавать ошибку проверки, но он дает значение true.

Может кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 02 мая 2019

Вам нужно добавить объекты в массив

изменить это

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

};

к этому

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

};

...