摘要:酷庫,每天兩分鐘,了解一個流行庫。比如需要滿足那些屬性,每個屬性都是什么類型的,這些條件稱之為數(shù)據(jù)模式驗證。在對數(shù)據(jù)的模式驗證領(lǐng)域有專門的標(biāo)準(zhǔn),叫做。就是按照標(biāo)準(zhǔn)聲明一個模式對象,然后使用模式驗證工具去驗證目標(biāo)數(shù)據(jù)。
NPM酷庫,每天兩分鐘,了解一個流行NPM庫?!?/p>
在NPM酷庫041中,我們學(xué)習(xí)了如何用validator庫來驗證字符串是否是Email、URL等,在開發(fā)中,除了字符串,我們還需要對更復(fù)雜的數(shù)據(jù)進行驗證。比如需要Object滿足那些屬性,每個屬性都是什么類型的,這些條件稱之為數(shù)據(jù)模式驗證。
在對數(shù)據(jù)的模式驗證領(lǐng)域有專門的標(biāo)準(zhǔn),叫做 JSON Schema。就是按照JSON Schema標(biāo)準(zhǔn)聲明一個模式對象,然后使用模式驗證工具去驗證目標(biāo)數(shù)據(jù)。
ajvajv 是一個非常流行的JSON Schema驗證工具,并且擁有非常出眾的性能表現(xiàn)。下方的例子中,我們使用ajv來驗證用戶輸入的表單數(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);
在上述代碼中,我們聲明了一個數(shù)據(jù)模式schema ,這個模式要求目標(biāo)數(shù)據(jù)為一個對象,對象可以有五個字段 username、email、password、age、sex,并分別定義了五個字段的類型和數(shù)據(jù)格式要求,并且其中 username、email、password 必填。然后我們使用這個模式去驗證用戶輸入的數(shù)據(jù) data 是否滿足我們的需求。
注意:
JSON Schema 是一個聲明模式描述對象的標(biāo)準(zhǔn),并非一個庫
ajv 是一個JSON Schema標(biāo)準(zhǔn)驗證器的實現(xiàn),除了ajv還有很多其他的庫
代碼中的 schema 是使用 JSON Schema 生成的模式描述對象
代碼中 data 是我們要進行檢查的數(shù)據(jù)
參考資料JSON Schema http://json-schema.org
AJV https://github.com/epoberezki...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.hztianpu.com/yun/107425.html
摘要:酷庫,每天兩分鐘,了解一個流行庫。在酷庫中,我們了解到了數(shù)據(jù)模式驗證,以及庫。是語義化的對象數(shù)據(jù)模式驗證庫,所謂語義化,是指其方法名能夠明確表達其含義。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。· 在NPM酷庫042中,我們了解到了JSON Schema數(shù)據(jù)模式驗證,以及ajv庫。今天我們來學(xué)習(xí)另一個對象數(shù)據(jù)驗證的庫joi。 joi joi 是語義化的對象數(shù)據(jù)模式驗證庫,所謂語義...
摘要:酷庫,每天兩分鐘,了解一個流行庫。是一個格式的擴展,目的是能夠讓人類更容易讀寫數(shù)據(jù)文件。只是一個第三方的庫,并非格式的繼任者。相對于,有如下各個方面優(yōu)勢。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫?!?JSON是JS中數(shù)據(jù)交換時最常用的數(shù)據(jù)格式,其序列話和反序列化性能非常好,但是其語法卻比較嚴格,比如以下是一個合法的JS聲明,卻不是一個合法的JSON: { foo: bar } J...
摘要:我們看到引入了對進行分析是一個很大的文件,里面規(guī)定了我們隨便看一段這是對你輸入的規(guī)定的要求是是其實就是本下的這樣寫可以提取公用的配置,避免代碼冗余一共行,其中就占了行接下里進入函數(shù)引入引入了,我們在搜索鏈接我們看到,在文檔里這樣的描述的用法 我們看到引入了 對webpack.js const validateSchema = require(./validateSchema); con...
摘要:酷庫,每天兩分鐘,了解一個流行庫。在酷庫中,我們了解到了相對于格式更加易于編寫和維護的,今天我們繼續(xù)學(xué)習(xí)另外一個更加簡單易讀的數(shù)據(jù)格式。是一個專門用來讀寫格式數(shù)據(jù)的庫,他可以將對象轉(zhuǎn)換成字符串,也可以將字符串轉(zhuǎn)換為對象。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫?!?在NPM酷庫044中,我們了解到了相對于JSON格式更加易于編寫和維護的JSON5,今天我們繼續(xù)學(xué)習(xí)另外一個更加簡單...
摘要:酷庫,每天兩分鐘,了解一個流行庫。在做數(shù)據(jù)管理類應(yīng)用時,尤其是管理后臺,經(jīng)常需要將數(shù)據(jù)導(dǎo)出為文件,方便在中離線打開查看。是一款用于將數(shù)據(jù)轉(zhuǎn)換成格式文件的庫。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫?!?在做數(shù)據(jù)管理類應(yīng)用時,尤其是管理后臺,經(jīng)常需要將數(shù)據(jù)導(dǎo)出為CSV文件,方便在Excel中離線打開查看。 json2csv json2csv是一款用于將JSON數(shù)據(jù)轉(zhuǎn)換成CSV格式文...
閱讀 1492·2021-09-24 10:26
閱讀 1761·2019-08-30 14:14
閱讀 2234·2019-08-29 16:54
閱讀 436·2019-08-29 14:09
閱讀 1553·2019-08-29 12:55
閱讀 1019·2019-08-28 18:13
閱讀 1654·2019-08-26 13:39
閱讀 2675·2019-08-26 11:43