国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

NPM酷庫042:ajv,JSON 模式驗證

lavnFan / 2569人閱讀

摘要:酷庫,每天兩分鐘,了解一個流行庫。比如需要滿足那些屬性,每個屬性都是什么類型的,這些條件稱之為數據模式驗證。在對數據的模式驗證領域有專門的標準,叫做。就是按照標準聲明一個模式對象,然后使用模式驗證工具去驗證目標數據。

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...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107425.html

相關文章

  • NPM酷庫043:joi,語義化模式驗證

    摘要:酷庫,每天兩分鐘,了解一個流行庫。在酷庫中,我們了解到了數據模式驗證,以及庫。是語義化的對象數據模式驗證庫,所謂語義化,是指其方法名能夠明確表達其含義。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在NPM酷庫042中,我們了解到了JSON Schema數據模式驗證,以及ajv庫。今天我們來學習另一個對象數據驗證的庫joi。 joi joi 是語義化的對象數據模式驗證庫,所謂語義...

    2bdenny 評論0 收藏0
  • NPM酷庫044:json5,更可讀的JSON

    摘要:酷庫,每天兩分鐘,了解一個流行庫。是一個格式的擴展,目的是能夠讓人類更容易讀寫數據文件。只是一個第三方的庫,并非格式的繼任者。相對于,有如下各個方面優勢。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· JSON是JS中數據交換時最常用的數據格式,其序列話和反序列化性能非常好,但是其語法卻比較嚴格,比如以下是一個合法的JS聲明,卻不是一個合法的JSON: { foo: bar } J...

    Flink_China 評論0 收藏0
  • 淺析webpack源碼之入口函數webpack.js詳解(四)

    摘要:我們看到引入了對進行分析是一個很大的文件,里面規定了我們隨便看一段這是對你輸入的規定的要求是是其實就是本下的這樣寫可以提取公用的配置,避免代碼冗余一共行,其中就占了行接下里進入函數引入引入了,我們在搜索鏈接我們看到,在文檔里這樣的描述的用法 我們看到引入了 對webpack.js const validateSchema = require(./validateSchema); con...

    zone 評論0 收藏0
  • NPM酷庫045:js-yaml,讀寫YAML

    摘要:酷庫,每天兩分鐘,了解一個流行庫。在酷庫中,我們了解到了相對于格式更加易于編寫和維護的,今天我們繼續學習另外一個更加簡單易讀的數據格式。是一個專門用來讀寫格式數據的庫,他可以將對象轉換成字符串,也可以將字符串轉換為對象。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在NPM酷庫044中,我們了解到了相對于JSON格式更加易于編寫和維護的JSON5,今天我們繼續學習另外一個更加簡單...

    jsummer 評論0 收藏0
  • NPM酷庫048:json2csv,導出csv文件

    摘要:酷庫,每天兩分鐘,了解一個流行庫。在做數據管理類應用時,尤其是管理后臺,經常需要將數據導出為文件,方便在中離線打開查看。是一款用于將數據轉換成格式文件的庫。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在做數據管理類應用時,尤其是管理后臺,經常需要將數據導出為CSV文件,方便在Excel中離線打開查看。 json2csv json2csv是一款用于將JSON數據轉換成CSV格式文...

    Forelax 評論0 收藏0

發表評論

0條評論

lavnFan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<