Я искал способ скомпилировать несколько 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);
});