Компиляция нескольких json схем одновременно с Ajv. js - PullRequest
0 голосов
/ 25 февраля 2020

Я искал способ скомпилировать несколько json схем с помощью ajv (Другой JSON Schema Validator) одновременно. Я попробовал следующий подход, и он работает (пример кода ниже), но я не уверен, что это правильный способ сделать это, потому что согласно API ajv здесь https://www.npmjs.com/package/ajv#api

Функция компиляции определяется как .compile (Object schema) -> Function

В этом определении не упоминается принятие логического значения в качестве параметра, однако, когда я попытался использовать ajv.compile() без каких-либо параметров, я получил это ошибка:

Ошибка: схема должна быть объектной или логической

Но после вызова ajv.compile(true) код запустился без ошибок, и я предполагаю, что в качестве аргумента будет передан true означает компилировать все схемы, определенные в опциях, но, как я уже сказал, я не смог найти ничего об этом моем предположении в документах AVS. (Мои схемы определены в схемах. js file)

Это правильный способ для компиляции нескольких схем?

var express = require('express');
var router = express.Router();

const schemas = require('../schemas.js');

var Ajv = require('ajv');
var ajv = new Ajv({
    allErrors: true,
    schemas: [schemas.profile, schemas.vzor]
});

var validate = ajv.compile(true);

router.post('/schema_test/', function (req, res, next) {

    var valid = ajv.validate('profile', req.body);
    if (valid) 
        console.log('Valid!');
    else
        console.log('Invalid: ' + ajv.errorsText(validate.errors));

    return res.sendStatus(200);
});
...