亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

NPM酷庫(kù)042:ajv,JSON 模式驗(yàn)證

lavnFan / 2670人閱讀

摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。比如需要滿足那些屬性,每個(gè)屬性都是什么類型的,這些條件稱之為數(shù)據(jù)模式驗(yàn)證。在對(duì)數(shù)據(jù)的模式驗(yàn)證領(lǐng)域有專門(mén)的標(biāo)準(zhǔn),叫做。就是按照標(biāo)準(zhǔn)聲明一個(gè)模式對(duì)象,然后使用模式驗(yàn)證工具去驗(yàn)證目標(biāo)數(shù)據(jù)。

NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)。·

在NPM酷庫(kù)041中,我們學(xué)習(xí)了如何用validator庫(kù)來(lái)驗(yàn)證字符串是否是Email、URL等,在開(kāi)發(fā)中,除了字符串,我們還需要對(duì)更復(fù)雜的數(shù)據(jù)進(jìn)行驗(yàn)證。比如需要Object滿足那些屬性,每個(gè)屬性都是什么類型的,這些條件稱之為數(shù)據(jù)模式驗(yàn)證。

在對(duì)數(shù)據(jù)的模式驗(yàn)證領(lǐng)域有專門(mén)的標(biāo)準(zhǔn),叫做 JSON Schema。就是按照J(rèn)SON Schema標(biāo)準(zhǔn)聲明一個(gè)模式對(duì)象,然后使用模式驗(yàn)證工具去驗(yàn)證目標(biāo)數(shù)據(jù)。

ajv

ajv 是一個(gè)非常流行的JSON Schema驗(yàn)證工具,并且擁有非常出眾的性能表現(xiàn)。下方的例子中,我們使用ajv來(lái)驗(yàn)證用戶輸入的表單數(shù)據(jù)是否合法。

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);

在上述代碼中,我們聲明了一個(gè)數(shù)據(jù)模式schema ,這個(gè)模式要求目標(biāo)數(shù)據(jù)為一個(gè)對(duì)象,對(duì)象可以有五個(gè)字段 usernameemail、password、age、sex,并分別定義了五個(gè)字段的類型和數(shù)據(jù)格式要求,并且其中 usernameemail、password 必填。然后我們使用這個(gè)模式去驗(yàn)證用戶輸入的數(shù)據(jù) data 是否滿足我們的需求。

注意:

JSON Schema 是一個(gè)聲明模式描述對(duì)象的標(biāo)準(zhǔn),并非一個(gè)庫(kù)

ajv 是一個(gè)JSON Schema標(biāo)準(zhǔn)驗(yàn)證器的實(shí)現(xiàn),除了ajv還有很多其他的庫(kù)

代碼中的 schema 是使用 JSON Schema 生成的模式描述對(duì)象

代碼中 data 是我們要進(jìn)行檢查的數(shù)據(jù)

參考資料

JSON Schema http://json-schema.org

AJV https://github.com/epoberezki...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/107425.html

相關(guān)文章

  • NPM酷庫(kù)043:joi,語(yǔ)義化模式驗(yàn)證

    摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。在酷庫(kù)中,我們了解到了數(shù)據(jù)模式驗(yàn)證,以及庫(kù)。是語(yǔ)義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫(kù),所謂語(yǔ)義化,是指其方法名能夠明確表達(dá)其含義。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)。· 在NPM酷庫(kù)042中,我們了解到了JSON Schema數(shù)據(jù)模式驗(yàn)證,以及ajv庫(kù)。今天我們來(lái)學(xué)習(xí)另一個(gè)對(duì)象數(shù)據(jù)驗(yàn)證的庫(kù)joi。 joi joi 是語(yǔ)義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫(kù),所謂語(yǔ)義...

    2bdenny 評(píng)論0 收藏0
  • NPM酷庫(kù)044:json5,更可讀的JSON

    摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。是一個(gè)格式的擴(kuò)展,目的是能夠讓人類更容易讀寫(xiě)數(shù)據(jù)文件。只是一個(gè)第三方的庫(kù),并非格式的繼任者。相對(duì)于,有如下各個(gè)方面優(yōu)勢(shì)。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)?!?JSON是JS中數(shù)據(jù)交換時(shí)最常用的數(shù)據(jù)格式,其序列話和反序列化性能非常好,但是其語(yǔ)法卻比較嚴(yán)格,比如以下是一個(gè)合法的JS聲明,卻不是一個(gè)合法的JSON: { foo: bar } J...

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

    摘要:我們看到引入了對(duì)進(jìn)行分析是一個(gè)很大的文件,里面規(guī)定了我們隨便看一段這是對(duì)你輸入的規(guī)定的要求是是其實(shí)就是本下的這樣寫(xiě)可以提取公用的配置,避免代碼冗余一共行,其中就占了行接下里進(jìn)入函數(shù)引入引入了,我們?cè)谒阉麈溄游覀兛吹剑谖臋n里這樣的描述的用法 我們看到引入了 對(duì)webpack.js const validateSchema = require(./validateSchema); con...

    zone 評(píng)論0 收藏0
  • NPM酷庫(kù)045:js-yaml,讀寫(xiě)YAML

    摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。在酷庫(kù)中,我們了解到了相對(duì)于格式更加易于編寫(xiě)和維護(hù)的,今天我們繼續(xù)學(xué)習(xí)另外一個(gè)更加簡(jiǎn)單易讀的數(shù)據(jù)格式。是一個(gè)專門(mén)用來(lái)讀寫(xiě)格式數(shù)據(jù)的庫(kù),他可以將對(duì)象轉(zhuǎn)換成字符串,也可以將字符串轉(zhuǎn)換為對(duì)象。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)?!?在NPM酷庫(kù)044中,我們了解到了相對(duì)于JSON格式更加易于編寫(xiě)和維護(hù)的JSON5,今天我們繼續(xù)學(xué)習(xí)另外一個(gè)更加簡(jiǎn)單...

    jsummer 評(píng)論0 收藏0
  • NPM酷庫(kù)048:json2csv,導(dǎo)出csv文件

    摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。在做數(shù)據(jù)管理類應(yīng)用時(shí),尤其是管理后臺(tái),經(jīng)常需要將數(shù)據(jù)導(dǎo)出為文件,方便在中離線打開(kāi)查看。是一款用于將數(shù)據(jù)轉(zhuǎn)換成格式文件的庫(kù)。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)?!?在做數(shù)據(jù)管理類應(yīng)用時(shí),尤其是管理后臺(tái),經(jīng)常需要將數(shù)據(jù)導(dǎo)出為CSV文件,方便在Excel中離線打開(kāi)查看。 json2csv json2csv是一款用于將JSON數(shù)據(jù)轉(zhuǎn)換成CSV格式文...

    Forelax 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<