jsonスキーマを使用してapiのjsonを検証しようとしています。ajvでjsonスキーマを検証する際にエラーの種類/値を取得する
私はnode.jsで最も人気のあるajvライブラリを見つけました。ただ、基本を取得し、私はその後、私のバリデータ
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;
と(mochaccino付き)モカを使用してにインポート
const viewSchema = {
"type": "object",
"properties":{
"title": {"type": "string"}
}
}
export default viewSchema;
としての私のスキーマを定義した
は出力
をテスト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からの指示に従います。タイプが必要なためテストが失敗することが予想されますdは文字列であり、数値を提供しています。しかし、私がajv.errorsText()
から得ている応答はNo Errors
であり、エラーが発生するはずです。
私は間違っていますか?
感謝を参照してください、主要なドキュメントは '言う;'ので、私はそれで行っていました。 – pedalpete
はい、ajv.validateを使用している場合です。 errorsTextを前の例に追加する必要があります。 – esp