hapi简单介绍
hapi是指hapijs,是一个基于nodejs的开发框架。根据hapi官网hapi官网链接首页介绍,hapi是一个深受开发者信任的简单、安全的框架。用最少的编码和开箱即用的功能来构建强大的可扩展的应用程序--“你的代码你做主。”
hapi的文档支持包括中英文在内的5种语言。目前的版本18.4。
hapi在国外应用很广泛,有着丰富的生态。健全的文档、规范的代码风格、简单的模块和插件机制让hapi的扩展更加容易。
hapi在国内应用不是很广泛。“藏在深山人未识”。本文通过快速创建一个博客项目API接口为例,来展示hapi的强大和简便。本文介绍hapi项目最基本的增删改查功能的实现,后期还会陆续推出文章介绍hapi项目的接口文档自动生成、数据验证、用户鉴权和文件上传等扩展功能,最后完成一个完整的开源项目示例。
hapi-scaffold
hapi-scaffold是github上的一个开源项目。hapi-scaffold不需要写一行代码就可以帮你构建一个标准的RESTful项目,包括MVC的项目结构,以及项目所需的全部代码。对于前端工程师来说,这是一个提高工作效率的强大工具。
hapi-scaffold的链接:https://github.com/jeffsouza/hapi-scaffold
创建项目
在桌面创建一个posts项目文件夹并进入项目目录。
cd desktop
mkdir posts
cd posts
初始化项目:
npm int
全局安装hapi-scaffold模块。
$ npm install hapi-scaffold -g
初始化项目结构
安装hapi和mongoose模块。
$ npm i @hapi/hapi mongoose
初始化hapi项目结构。
$ hapi-scaffold init
hapi-scaffold 会自动帮我们在项目目录下创建如下的hapi项目结构:
连接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就这样简单地生成了!
我们再来看看项目的目录结构:
测试
在命令行输入下面的代码来运行项目:
node .
项目成功运行在指定的网址:
Listening on http://localhost:8000
用postman先来添加两条数据:


用postman查询这两条数据:

用postman修改第二条数据:

用postman删除第二条数据:

现在第二篇博客被删除了:

是不是So easy ,So hapi?