NPM酷库042:ajv,JSON 形式考证

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 ,这个形式请求目的数据为一个对象,对象能够有五个字段 usernameemailpasswordagesex,并离别定义了五个字段的范例和数据格式请求,而且个中 usernameemailpassword 必填。然后我们运用这个形式去考证用户输入的数据 data 是不是满足我们的需求。

注重:

  • JSON Schema 是一个声明形式形貌对象的规范,并不是一个库
  • ajv 是一个JSON Schema规范考证器的完成,除了ajv另有许多其他的库
  • 代码中的 schema 是运用 JSON Schema 天生的形式形貌对象
  • 代码中 data 是我们要举行检查的数据

参考资料

JSON Schema http://json-schema.org

AJV https://github.com/epoberezki…

    原文作者:脉冲云_梁兴臣
    原文地址: https://segmentfault.com/a/1190000013265287
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞