NPM酷库,天天两分钟,了解一个流行NPM库。·git
在NPM酷库041中,咱们学习了如何用validator库来验证字符串是不是Email、URL等,在开发中,除了字符串,咱们还须要对更复杂的数据进行验证。好比须要Object知足那些属性,每一个属性都是什么类型的,这些条件称之为数据模式验证。github
在对数据的模式验证领域有专门的标准,叫作 JSON Schema。就是按照JSON Schema标准声明一个模式对象,而后使用模式验证工具去验证目标数据。json
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
是否知足咱们的需求。性能
注意:学习
schema
是使用 JSON Schema 生成的模式描述对象data
是咱们要进行检查的数据JSON Schema http://json-schema.orgui
AJV https://github.com/epoberezki...code