Node.js开源应用框架HapiJS介绍

一、HapiJS介绍

HapiJS是一个开源的、基于Node.js的应用框架,它适用于构建应用程序和服务,其设计目标是让开发者把精力集中于开发可重用的应用程序的业务逻辑,向开发者提供构建应用程序业务逻辑所需的基础设施。HapiJS目前的最新版本为7.2.0版。

二、HapiJS安装和项目配置

1、安装Hapi库

HapiJS的安装很简单,执行如下命令:
代码如下:

2、配置项目

1)创建一个名为myproject的新目录

代码如下:
2)在目录下运行初始化命令
代码如下:
此命令会生成package.json文件,它是项目的元数据。 接着执行命令:
代码如下:
它会安装hapi库到项目下,并把hapi的依赖关系写入package.json。

此时,项目开发所需的一切都已经准备完毕。

三、开发实例

1、创建服务器

代码如下:

server.start(function(){ console.log('Server running at: ',server.info.uri); });

首先,我们需要Hapi库。 其次,我们创建一个新hapi服务器对象,并把要监听的端口号传递给服务器对象。 最后,服务器对象启动,并输出日志信息。 要说明一点,我们创建服务器对象时,可以提供主机名、IP地址,甚至是Unix的socket文件,或者是Windows系统绑定到服务器命名的管道。

2、启动服务器 执行命令:

代码如下:
访问http://127.0.0.1:3000/ ,浏览器显示如下内容:
代码如下:

很正常,因为服务器上本身就没有任何内容,下面把路由逻辑添加上。

3、路由逻辑

代码如下:

server.route({ method: 'GET', path: '/', handler: function(request,reply){ reply('Hello,world!'); } });

server.route({ method: 'GET', path: '/{name}',' + encodeURIComponent(request.params.name) + "!"); } });

server.start(function(){ console.log('Server running at: ',server.info.uri); });

再次启动服务器:

代码如下:
并访问http://127.0.0.1:3000/ ,浏览器显示如下内容: Hello,world! 访问http://127.0.0.1:3000/张三 ,浏览器显示如下内容: Hello,%E5%BC%A0%E4%B8%89!

可见,路由逻辑运行正常。

要注意: method的参数可以是任意有效的HTTP方法,也可以是星号*(表示任意HTTP方法)。 path的参数定义了访问路径,路径可以包含参数、可选参数,甚至是通配符。

四、使用插件

在创建Web应用时,通常我们都需要访问日志。要为应用程序添加基本的日志输出,我们可以在服务器上加载good插件。

1、安装good插件

代码如下:
2、更新server.js的代码
代码如下:

var server = new Hapi.Server(3000);

server.route({ method: 'GET',' + encodeURIComponent(request.params.name) + "!"); } });

server.pack.register(Good,function(err){ if(err){ // something bad happened loading the plugin throw err; } server.start(function(){ server.log('info','Server running at: ' + server.info.uri); }); });

运行server.js,控制台输出:
代码如下:
如果我们接着访问:http://127.0.0.1:3000/liqiang 和http://127.0.0.1:3000/ 控制台会继续输出:
代码如下:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


js中event的用法
js中能调用python吗
js中split的用法
js怎么设置边框样式
js中截取字符串的方法
js中innerhtml的用法
javascript的成熟分类方式有哪些
js中document是什么意思
js怎样让div中的文字居中
js中怎样定义一个对象
javascript的成熟分类介绍
js中parseint什么意思
js中字符串如何排序
void在js中是什么意思
js中如何定义函数
js中arguments是什么意思
js中什么是同步和异步
js中如何sleep一秒
js中ui函数是什么意思
js中如何遍历数组