【发布时间】:2018-01-26 18:19:14
【问题描述】:
我写了以下代码。
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
【问题讨论】: