盒子
盒子

HAPI--build reusable api

A rich framework for building applications and services

hapi enables developers to focus on writing reusable application logic instead of spending time building infrastructure.

1
$ npm install hapi

以上是HAPI官网对这一框架的介绍。简单来说就是帮助开发者建造可复用的后端逻辑,为应用提供强大的api。

安装的方式很简单,同express相似,npm install hapi 。这一框架在github上有将近7000的star,同它的老大哥express的2万8千多还是相差甚远,但是框架的意义在于解决实际工作中的重复劳动,简化开发流程,优化开发速度。在构建api方面,hapi还是跟express有一拼的,生态方面也良好,https://github.com/hapijs 组织里将近80个的插件。

文档方面也很友好,http://hapijs.com/tutorials 里叙述详细,对nodejs熟悉的后端能很快的上手,有express经验的同学或许会有些疑惑,因为hapi里很多功能的实现与express不同了,但是细读文档,你会发现还是有很多相似的地方。

举个简单的例子,express里我想给response加一个方法,我只要使用express的实例app的use方法。

1
2
3
4
5
6
7
8
9
10
app.use(function(req, res, next){
res.apiSuccess = function (data) {
res.json({
status: "OK",
result: data
})
}
next()
})

这样一个反应api请求成功的res拓展方法就完成了。而hapi中,你需要在hapi项目里创建的server下(server = new Hapi.Server()),使用它的handler方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection({ host: 'localhost', port: 8000 });
const handler = function (route, options) {
return function (request, reply) {
return reply('new handler: ' + options.msg);
}
};
server.handler('test', handler);
server.route({
method: 'GET',
path: '/',
handler: { test: { msg: 'test' } }
});
server.start(function (err) {
});

在这里我们使用了server.handler注册了一个test放法,在之后的server.route中我们直接使用了test并为其添加了一个键值。之后访问 yourpath/ 你就会看到浏览器上显示new handler test

之后还会继续研究hapi这个框架,毕竟之后的项目要在这一框架上运行,我也要利用这一框架开发出健壮的后端api,努力!

支持一下
扫一扫,支持wind
  • 微信

  • 支付宝