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 項目一起用。