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