hapi是指hapijs,是一個基於nodejs的開發框架。根據hapi官網hapi官網連接首頁介紹,hapi是一個深受開發者信任的簡單、安全的框架。用最少的編碼和開箱即用的功能來構建強大的可擴展的應用程序--「你的代碼你作主。」前端
hapi的文檔支持包括中英文在內的5種語言。目前的版本18.4。node
hapi在國外應用很普遍,有着豐富的生態。健全的文檔、規範的代碼風格、簡單的模塊和插件機制讓hapi的擴展更加容易。git
hapi在國內應用不是很普遍。「藏在深山人未識」。本文經過快速建立一個博客項目API接口爲例,來展現hapi的強大和簡便。本文介紹hapi項目最基本的增刪改查功能的實現,後期還會陸續推出文章介紹hapi項目的接口文檔自動生成、數據驗證、用戶鑑權和文件上傳等擴展功能,最後完成一個完整的開源項目示例。github
hapi-scaffold是github上的一個開源項目。hapi-scaffold不須要寫一行代碼就能夠幫你構建一個標準的RESTful項目,包括MVC的項目結構,以及項目所需的所有代碼。對於前端工程師來講,這是一個提升工做效率的強大工具。mongodb
hapi-scaffold的連接:https://github.com/jeffsouza/hapi-scaffold數據庫
在桌面建立一個posts
項目文件夾並進入項目目錄。npm
cd desktop
mkdir posts
cd posts
複製代碼
初始化項目:api
npm int
複製代碼
全局安裝hapi-scaffold
模塊。安全
$ npm install hapi-scaffold -g
複製代碼
安裝hapi
和mongoose
模塊。bash
$ npm i @hapi/hapi mongoose
複製代碼
初始化hapi項目結構。
$ hapi-scaffold init
複製代碼
hapi-scaffold 會自動幫咱們在項目目錄下建立以下的hapi項目結構:
輸入下面的命令會在config
文件夾下建立數據庫連接文件dadabase.js
。
$ hapi-scaffold generate db:mongo
複製代碼
dadabase.js
內容以下:
const mongoose = require('mongoose');
class Database {
static connect() {
mongoose.connect('URL', {useNewUrlParser: true});
}
}
module.exports = Database;
複製代碼
將mongoDB的鏈接URL改爲你本身的地址,如:
mongoose.connect('mongodb://localhost:27017/posts', {useNewUrlParser: true, useUnifiedTopology: true});
複製代碼
輸入如下命令來建立posts的模型、控制器、路由等文件。
$ hapi-scaffold scaffold post title:string:required content:string rating:number
複製代碼
搞定!屏幕會顯示:
Model created!
Service created!
Controller created!
Route created!
Route registered!
複製代碼
基於hapi的posts的增刪改查API就這樣簡單地生成了!
咱們再來看看項目的目錄結構:
在命令行輸入下面的代碼來運行項目:
node .
複製代碼
項目成功運行在指定的網址:
Listening on http://localhost:8000
複製代碼
用postman先來添加兩條數據:
用postman查詢這兩條數據:
用postman修改第二條數據:
用postman刪除第二條數據:
如今第二篇博客被刪除了:
是否是So easy ,So hapi?