五分鐘用hapi和mongoDB構建一個RESTful的CRUD接口API

hapi簡單介紹

hapi是指hapijs,是一個基於nodejs的開發框架。根據hapi官網hapi官網連接首頁介紹,hapi是一個深受開發者信任的簡單、安全的框架。用最少的編碼和開箱即用的功能來構建強大的可擴展的應用程序--「你的代碼你作主。」前端

hapi的文檔支持包括中英文在內的5種語言。目前的版本18.4。node

hapi在國外應用很普遍,有着豐富的生態。健全的文檔、規範的代碼風格、簡單的模塊和插件機制讓hapi的擴展更加容易。git

hapi在國內應用不是很普遍。「藏在深山人未識」。本文經過快速建立一個博客項目API接口爲例,來展現hapi的強大和簡便。本文介紹hapi項目最基本的增刪改查功能的實現,後期還會陸續推出文章介紹hapi項目的接口文檔自動生成、數據驗證、用戶鑑權和文件上傳等擴展功能,最後完成一個完整的開源項目示例。github

hapi-scaffold

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
複製代碼

初始化項目結構

安裝hapimongoose模塊。bash

$ npm i @hapi/hapi mongoose
複製代碼

初始化hapi項目結構。

$ hapi-scaffold init
複製代碼

hapi-scaffold 會自動幫咱們在項目目錄下建立以下的hapi項目結構:

項目文件目錄1

鏈接mongoDB數據庫

輸入下面的命令會在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});
複製代碼

一鍵生成CRUD

輸入如下命令來建立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就這樣簡單地生成了!

咱們再來看看項目的目錄結構:

項目文件目錄2

測試

在命令行輸入下面的代碼來運行項目:

node .
複製代碼

項目成功運行在指定的網址:

Listening on http://localhost:8000
複製代碼

用postman先來添加兩條數據:

用postman查詢這兩條數據:

用postman修改第二條數據:

用postman刪除第二條數據:

如今第二篇博客被刪除了:

是否是So easy ,So hapi?

相關文章
相關標籤/搜索