NPM酷库,天天两分钟,相识一个盛行NPM库。·
在NPM酷库041中,我们进修了如何用validator库来考证字符串是不是是Email、URL等,在开辟中,除了字符串,我们还须要对更庞杂的数据举行考证。比方须要Object满足那些属性,每一个属性都是什么范例的,这些前提称之为数据形式考证。
在对数据的形式考证范畴有特地的规范,叫做 JSON Schema。就是根据JSON Schema规范声明一个形式对象,然后运用形式考证东西去考证目的数据。
ajv
ajv 是一个异常盛行的JSON Schema考证东西,而且具有异常出众的机能表现。下方的例子中,我们运用ajv来考证用户输入的表单数据是不是正当。
const Ajv = require('ajv');
let schema = {
type: 'object',
required: ['username', 'email', 'password'],
properties: {
username: {
type: 'string',
minLength: 4
},
email: {
type: 'string',
format: 'email'
},
password: {
type: 'string',
minLength: 6
},
age: {
type: 'integer',
minimum: 0
},
sex: {
enum: ['boy', 'girl', 'secret'],
default: 'secret'
},
}
};
let ajv = new Ajv();
let validate = ajv.compile(schema);
let valid = validate(data);
if (!valid) console.log(validate.errors);
在上述代码中,我们声清楚明了一个数据形式schema
,这个形式请求目的数据为一个对象,对象能够有五个字段 username
、email
、password
、age
、sex
,并离别定义了五个字段的范例和数据格式请求,而且个中 username
、email
、password
必填。然后我们运用这个形式去考证用户输入的数据 data
是不是满足我们的需求。
注重:
- JSON Schema 是一个声明形式形貌对象的规范,并不是一个库
- ajv 是一个JSON Schema规范考证器的完成,除了ajv另有许多其他的库
- 代码中的
schema
是运用 JSON Schema 天生的形式形貌对象 - 代码中
data
是我们要举行检查的数据
参考资料
JSON Schema http://json-schema.org