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

資訊專欄INFORMATION COLUMN

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

2bdenny / 2633人閱讀

摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。在酷庫(kù)中,我們了解到了數(shù)據(jù)模式驗(yàn)證,以及庫(kù)。是語(yǔ)義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫(kù),所謂語(yǔ)義化,是指其方法名能夠明確表達(dá)其含義。

NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)?!?/p>

在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ǔ)義化,是指其方法名能夠明確表達(dá)其含義。

const Joi = require("joi");

// 聲明模式
const schema = Joi.object().keys({
    username: Joi.string().alphanum().min(3).max(30).required(),
    password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/),
    access_token: [Joi.string(), Joi.number()],
    birthyear: Joi.number().integer().min(1900).max(2013),
    email: Joi.string().email()
}).with("username", "birthyear").without("password", "access_token");

// 驗(yàn)證
const result = Joi.validate({ username: "abc", birthyear: 1994 }, schema);

// result.error === null -> valid

注意:joi并非是JSON Schema標(biāo)準(zhǔn)的實(shí)現(xiàn),另外,使用ajv驗(yàn)證JSON Schema可以將模式配置信息保存在.json文件中,因?yàn)镴SON Schema模式是聲明式的,而joi則必須在代碼文件中實(shí)現(xiàn)模式配置,因?yàn)閖oi的語(yǔ)義化必須以函數(shù)調(diào)用來(lái)實(shí)現(xiàn)。

參考資料

https://github.com/hapijs/joi

https://github.com/hapijs/joi...

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

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

相關(guān)文章

  • NPM酷庫(kù):semver 語(yǔ)義版本判斷

    摘要:今天在此向大家推薦一種非常流行的版本號(hào)命名規(guī)則語(yǔ)義化版本。語(yǔ)義化版本約定修訂版本號(hào)代表在和之前接口不變的前提下修正了。就是專門用于語(yǔ)義化版本號(hào)檢查的庫(kù),其也是語(yǔ)義化版本標(biāo)準(zhǔn)的制定者。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)。 軟件的命運(yùn)就是不斷維護(hù)、更新、迭代,所以我們用版本號(hào)來(lái)區(qū)分一個(gè)軟件的不同時(shí)期和形態(tài),版本號(hào)的命名方式有各種各樣,有的以小數(shù)表示(幾點(diǎn)幾),有的以日期表示,有...

    Carbs 評(píng)論0 收藏0
  • JavaScript 踩坑心得— 為了高速(上)

    摘要:集裝箱化集裝箱化集裝箱化以下是部分原因集裝箱化會(huì)迫使你遵從應(yīng)用開發(fā)大原則。通過(guò)集裝箱化,可以實(shí)現(xiàn)開發(fā)階段測(cè)試以及生產(chǎn)環(huán)境的對(duì)等。實(shí)現(xiàn)環(huán)境集裝箱化的理由還有很多很多,一旦掌握了基本知識(shí),集裝箱化就不難實(shí)現(xiàn)。 一.前言 很多情況下,產(chǎn)品的設(shè)計(jì)與開發(fā)人員一直想打造一套高品質(zhì)的解決方案,從而快速、平穩(wěn)地適應(yīng)產(chǎn)品迭代。速度是衡量產(chǎn)品適應(yīng)性的真正且唯一的標(biāo)準(zhǔn),而且,這并不是筆者的一家之言。 「速度...

    魏憲會(huì) 評(píng)論0 收藏0
  • NPM酷庫(kù)042:ajv,JSON 模式驗(yàn)證

    摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。比如需要滿足那些屬性,每個(gè)屬性都是什么類型的,這些條件稱之為數(shù)據(jù)模式驗(yàn)證。在對(duì)數(shù)據(jù)的模式驗(yàn)證領(lǐng)域有專門的標(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等,在開發(fā)中,除了字符串,...

    lavnFan 評(píng)論0 收藏0
  • vue-cli系列之vue-cli自身引用了哪些包?持續(xù)更新中……

    摘要:概述當(dāng)創(chuàng)建了一個(gè)后,我們使用就可以啟動(dòng)項(xiàng)目了。這個(gè)命令實(shí)際上是啟動(dòng)了一段腳本,那這個(gè)腳本引用了哪些包呢讓我們來(lái)一探究竟。實(shí)例檢測(cè)本機(jī)版本是否符合需求的版本。鏈接概述這個(gè)包是用來(lái)處理命令行的參數(shù)輸入的。設(shè)置檢查范圍的起始端口號(hào)。 概述 當(dāng)vue-cli創(chuàng)建了一個(gè)vue-demo后,我們使用npm run serve就可以啟動(dòng)項(xiàng)目了。通過(guò)package.json中的serve命令我們可以看...

    LiuRhoRamen 評(píng)論0 收藏0
  • NPM酷庫(kù):pify 將異步函數(shù)Promise

    摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。昨天我們了解到可以用庫(kù)將樣式庫(kù)轉(zhuǎn)化為樣式,同時(shí)庫(kù)也提供了強(qiáng)大在增強(qiáng)版的,如果我們需要轉(zhuǎn)化函數(shù),且僅需要使用標(biāo)準(zhǔn)的,那么使用有些大材小用。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)。 所有Node.js標(biāo)準(zhǔn)庫(kù)和很多第三方庫(kù)提供的接口都是callback樣式的,在ES7標(biāo)準(zhǔn)時(shí)代,使用async/await配合Promise才是最佳實(shí)踐。 昨天我們了解到...

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

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

0條評(píng)論

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