Skip to main content

hapi - joi

Dev
Table of Contents

Hapi.JS 屬於配置型的 HTTP API 的。也是 HTTP API 的縮寫。

它跟 expressjs 不一樣的是,它不用 middleware,而是插件(plugin)。

今天就看看 HapiJS 用來驗證資料的插件:Joi 。我們看看 Hapi 的 Joi 多簡單。不多說,請看圖:

HapiJS 本身使用 Joi 來檢查 route parameters、query、還有 post payload。

/* params
        /api/users/?id
*/

/* query
        /api/users?limit=20
*/

沒通過驗證
#

正常通過驗證的數據
#

Code
#

評論
#

ExpressJS 的確是個 barebones 的 framework(官方講的一樣,真的好 minimal)。例如驗證 email 和密碼登陸,除非你想自己寫,不然都用第三方模塊,例如 validator

開始針對 req.body 作出驗證,是否剛剛好有兩個 keys:email 和 password。首先看看 email 和 password 是否真的只是 string,不是其他類別。然後再針對 email 是否真的是 email(有 @ 和 . 符號)。密碼是否真的至少有 xx 的長度。再看你懶不懶,看什麽狀況再寫不同的 res.json(),因爲我太嬾了只寫 res.sendStatus(400)

hapi + joi 只用了簡單的 4-5 行代碼就代替了你要多少行 IF IF IF 才寫完的驗證。

開心的是 Joi 也可以配合 express 任何 Javascript 項目一起用。

https://www.npmjs.com/package/joi