五分钟用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?

相关文章
相关标签/搜索