gpt4 book ai didi

json - 使用 ajv 验证 json 模式时获取错误类型/值

转载 作者:行者123 更新时间:2023-12-05 00:59:39 24 4
gpt4 key购买 nike

我正在尝试使用 json 模式来验证 api 的 json。

我找到了 ajv 库,它似乎是 node.js 中最受欢迎的。

刚刚获得基础知识,我已将架构定义为

const viewSchema = {
"type": "object",
"properties":{
"title": {"type": "string"}
}
}

export default viewSchema;

然后我将它导入到我的验证器中

import Ajv from 'ajv';

import viewSchema from './viewSchema';
const ajv = Ajv({allErrors: true});
let validate = ajv.compile(viewSchema);

const validateView = viewJson => {
var isValid = validate(viewJson);
console.log('------ text',ajv.errorsText(), isValid)
if(isValid) return true;
return ajv.errorsText();
}

export default validateView;

并使用 mocha (with mochaccino) 测试输出

describe('validate view', () => {
it('should error if title is not a string', () => {
console.log('-----------',validateView({"title":122}))
expect(validateView({"title":122}).errors).toContain('should be string');
});
});

按照 ajv github page 的指示进行操作我希望我的测试会失败,因为所需的类型是字符串并且我提供了一个数字。但是我从 ajv.errorsText() 得到的响应是 No Errors 它应该提供一个错误。

看起来很简单,我做错了什么?

最佳答案

你需要将错误传递给ajv.errorsText():

ajv.errorsText(validate.errors)

如果你使用 ajv.validate 方法,如果没有参数,它会返回错误文本。

https://github.com/epoberezkin/ajv#errorstextarrayobject-errors--object-options---string

关于json - 使用 ajv 验证 json 模式时获取错误类型/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45670152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com