hapi框架,用官网的简介来说就是:Hapi是构建应用程序和服务的丰富框架,它使开发人员能够专注于编写可重用的应用程序逻辑,而不是花时间构建基础设施。

用自己的话简单来说,就是个类似express,koa之类的node服务基础框架。

此篇博客是在阅读过掘金小册的《基于 hapi 的 Node.js 小程序后端开发实践指南》并实践操作后,以此记录实践过程和踩过的坑。感兴趣读者可支持阅读掘金小册原版的内容。

路由汇总

1. 在./routes目录下新建index.js

作为路由的汇总,这样以后只管在./routes下新建文件即可

"use strict";

const fs = require("fs");

const path = require("path");

const basename = path.basename(__filename); // 当前文件名

let routeArr = [];

// 同步读取当前目录,并过滤除了当前文件的文件名数组

fs.readdirSync(__dirname)

.filter(file => {

// 过滤掉隐藏文件、当前文件、非js文件, 返回当前目录下文件名称数组

return (

file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"

);

})

.forEach(file => {

// 引入路由模块

let arr = require(path.join(__dirname, file));

// 汇总

routeArr.push(...arr);

});

module.exports = routeArr;

测试路由

1.新建test.js文件作为测试

const GROUP_NAME = "test";

module.exports = [

// 纯测试返回 接口

{

method: "GET",

path: `/${GROUP_NAME}`,

handler: (request, h) => {

const data = { message: "test" };

// 响应数据方式:

// return h.response(data).code(200);

return data;

}

},

]

2.修改app.js

3.浏览测试结果

接口文档Swagger

这个hapi插件是笔者认为强大好用的工具,可以根据路由给的config配置,自己生成对应的接口文档、测试接口数据 以及 配合Joi插件来校验数据

2.安装swagger相关依赖

npm i hapi-swagger inert vision package

3.编写配置插件

在./plugins 目录下新建hapi-swagger.js

const hapiSwagger = require("hapi-swagger");

const inert = require("inert");

const vision = require("vision");

const package = require("package");

module.exports = [

inert,

vision,

{

plugin: hapiSwagger,

options: {

info: {

title: "接口文档", // 文档的标题

version: package.version // 文档的版本

},

// 定义接口以tags属性为分类【定义分类的大标题】,给./routes路由的配置config:tags使用

grouping: "tags",

// 标签,用于对应路由config定义的tags进行归类

tags: [

{ name: "test", description: "测试相关" }

],

lang: 'zh-cn' // 文档语言

}

}

];

4.app.js入口文件配置swagger插件

5.访问接口文档

访问地址:http://localhost:3000/documentation

6.路由配置生产测试接口

修改测试路由文件 ./routes/test.js

再次访问文档地址

hapi mysql项目实战路由初始化_hapi框架搭建记录(二):路由改造和生成接口文档...相关推荐

  1. [Golang梦工厂]一个小项目带你学会GIN框架、JWT鉴权、swagger生成接口文档,看这一篇就够了

    前言 哈喽,大家好,我是asong,这是我的第八篇原创文章.听说你们还不会jwt.swagger,所以我带来一个入门级别的小项目.实现用户登陆.修改密码的操作.使用GIN(后台回复Golang梦工厂: ...

  2. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)

    二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...

  3. Go 项目自动生成接口文档

    CSDN 中文章不一定能及时更新,欢迎关注我的博客查看最新版本:许盛的博客 背景 如何让后端同学愉快地写接口文档,是个老大难问题. 使用 GraphQL 当接口标准,倒是省了接口文档的问题,连前端代码 ...

  4. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(一)

    阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...

  5. hapi mysql项目实战路由初始化_用hapi.js mysql和nuxt.js(vue ssr)开发仿简书的博客项目...

    前言: 预览: 开始: npm i 把mysql配置好 npm run server or npm run dev 实现功能: 用户: 登录.注册.用户资料修改,详情页面,类似于简书的文章数量.总字数 ...

  6. Java项目自动生成接口文档

    Idea安装插件 EasyYapi 插件可基于javadoc解析API文档. 右击项目或者类即可导出接口文档: Java注释demo: 官方文档:文档 /*** 分类名称* 分类备注/描述** @mo ...

  7. 22.案例实战:把springboot的接口,自动生成接口文档

    代码:https://github.com/NIGHTFIGHTING/spring_boot_learning/tree/master/21-22/agan-boot/agan-boot-swagg ...

  8. Popular MVC框架swagger+knif4j接口文档工具使用示例

    Popular MVC框架swagger接口文档工具使用示例 简介 此项目介绍如何使用popularmvc内置的swagger+knife4j实现简单易用的实时API文档,支持在线调试接口! 此项目只 ...

  9. springfox源码_【开源项目】springfox-bridge:随心所欲地为非restful接口生成API文档...

    一.引言 目前,利用swagger框架为restful接口编写API文档非常流行,在spring web项目中,利用springfox+swagger更是可以通过注解的方式直接进行API文档的生成,这 ...

  10. SpringBoot+MyBatis+MYSQL项目实战六(新增收货地址)

    SpringBoot+MyBatis+MYSQL项目实战六(新增收货地址) 项目源码地址:电脑商城实战 点击新增收货地址 一:新增收货地址--数据表的创建 CREATE TABLE t_address ...

最新文章

  1. 新手篇——学习网页开发需要多长时间就能找到工作
  2. 2019.1.7 区块链论文翻译
  3. 中国超细旦丝现状调研及投资前景评估报告2022-2028年版
  4. mysql建表主键_常见的MySQL命令大全second
  5. Unity官方宣传片Adam 播放地址
  6. ajax get怎么传参数值,如何使用jQuery在GET请求中传递参数
  7. [js]DOM 篇
  8. 查看Android 系统发送的广播
  9. web集群之haproxy相关配置
  10. 看完这一篇,解决Mac电脑90%的软件烦恼
  11. OA协同办公系统功能介绍
  12. php获取一段时间内的法定工作日
  13. c 语言中是什么作用是什么意思,在C语言中%C是什么意思
  14. 融云--快速集成融云
  15. 《推荐算法工程师培养计划》
  16. 【计算机网络】吞吐量与瓶颈链路
  17. 万能种子搜索器p2p官方版
  18. java android知识点总汇
  19. (附源码)springboot小说网站系统 毕业设计 041446
  20. 蓝桥杯 算法训练 JAM计数法

热门文章

  1. 教你来使用雪碧图(CSS sprite)
  2. Glide 显示圆形头像
  3. 南昌大学计算机学院夏令营,南昌大学关于举办2021年优秀大学生暑期夏令营活动的通知...
  4. 码医自学法V2.2(附名老中医)
  5. .netCore微信转账至零钱——V3
  6. 【渝粤题库】陕西师范大学180108 有效教学的理论与实践
  7. 【论文研读】-用于约束多目标优化的新型双阶段双种群进化算法
  8. Unity Shader-热空气扭曲效果
  9. ant design vue 实现手机号 身份证 中文校验 邮箱校验
  10. 适合新手的mac电脑使用技巧 苹果电脑的快捷键和使用技巧