0
我寫了下面的代碼。如何將關鍵字Nullable(或allowNull)添加到Ajv中?
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
但它不起作用。如何編寫這樣一個驗證器?
即使編譯函數始終返回true,它仍然無法通過驗證。
的代碼可以在節點的沙箱進行測試: https://runkit.com/khusamov/59965aea14454f0012d7fec0
我需要爲揚鞭格式創建兩個關鍵字。如可空和歧視。所以我需要這個關鍵字的形式。該方案不能改變。 –
它可以使用inline關鍵字來完成,但它涉及很多。見https://github.com/epoberezkin/ajv/issues/486 – esp
我讀的問題。如果我理解正確,沒有解決方案,不會? –