可以尝试在Schema中使用$ref关键字来引用其他Schema,然后使用ajv.addSchema()方法将其添加到AJV中。例如:
const schema1 = { type: 'object', properties: { foo: { type: 'string' } } }; const schema2 = { type: 'object', properties: { bar: { type: 'string' }, baz: { $ref: '#/definitions/baz' } }, definitions: { baz: { ...schema1 // 这里引用了schema1 } } };
const ajv = new Ajv(); ajv.addSchema(schema2, 'mySchema'); const data = { bar: 'hello', baz: { foo: 'world' } }; const validate = ajv.getSchema('mySchema'); if (validate(data)) { console.log('valid'); } else { console.log(validate.errors); }
在这个示例中,我们使用$ref关键字来引用另一个Schema。我们首先定义了两个模式——schema1和schema2,然后在我们要引用它的地方使用了$ref关键字,并在definitions中定义了引用的模式。在添加模式后,我们可以使用AJV的getSchema()方法来获取要验证的数据的模式并进行验证。