Ich schrieb den folgenden Code.Wie Schlüsselwort Nullable (oder allowNull) in Ajv hinzufügen?
var ajv = new require('ajv');
ajv.addKeyword('allowNull', {
type: 'null',
metaSchema: {
type: 'boolean'
},
compile: function(allowNullEnable, parentSchema) {
return function(data, dataPath, parentData) {
if (allowNullEnable) {
return true;
} else {
if (parentSchema.type == 'null') {
return true;
} else {
return data === null ? false : true;
}
}
}
}
});
var schema = {
type: "object",
properties: {
file: {
type: "string",
allowNull: true
}
}
};
var data = {
file: null
};
console.log(ajv.validate(schema, data)) // Expected true
Aber es funktioniert nicht. Wie schreibt man einen solchen Validator?
Auch wenn die Kompilierfunktion immer true zurückgibt, besteht sie die Validierung noch nicht. https://runkit.com/khusamov/59965aea14454f0012d7fec0
Ich muss zwei Schlüsselwörter für das Swagger-Format erstellen. Wie Nullable und descriminator. Ich brauche das also in Form eines Schlüsselworts. Das Schema kann nicht geändert werden. –
Es kann mit Inline-Schlüsselwort getan werden, aber es ist ziemlich beteiligt. Siehe https://github.com/epoberezkin/ajv/issues/486 – esp
Ich habe das Problem gelesen. Wenn ich richtig verstehe, gibt es keine Lösung und wird es nicht sein? –