HapiJS开发手册

HapiJS开发手册

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

一、HapiJS介绍

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

二、HapiJS安装和项目配置

1、安装Hapi库
HapiJS的安装很简单,执行如下命令:
$ sudo npm install hapi -g
[email protected] /usr/local/lib/node_modules/hapi
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected])

2、配置项目

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

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

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

三、开发实例

1、创建服务器
// server.js
var Hapi = require(‘hapi‘);
var server = new Hapi.Server(3000);

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

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

2、启动服务器
执行命令:
$ node server.js
访问http://127.0.0.1:3000/ ,浏览器显示如下内容:
{"statusCode":404,"error":"Not Found"}

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

3、路由逻辑

// server.js
var Hapi = require(‘hapi‘);
var server = new Hapi.Server(3000);

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

server.route({
method: ‘GET‘,
path: ‘/{name}‘,
handler: function(request, reply){
reply(‘Hello, ‘ + encodeURIComponent(request.params.name) + "!");
}
});

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

再次启动服务器:
$ node server.js
并访问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插件
$ sudo npm install --save good
[email protected] node_modules/good
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected])

2、更新server.js的代码
// server.js
var Hapi = require(‘hapi‘);
var Good = require(‘good‘);

var server = new Hapi.Server(3000);

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

server.route({
method: ‘GET‘,
path: ‘/{name}‘,
handler: function(request, reply){
reply(‘Hello, ‘ + 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,控制台输出:
141102/161007.644, info, Server running at: http://localhost:3000
如果我们接着访问:http://127.0.0.1:3000/liqiang
和http://127.0.0.1:3000/
控制台会继续输出:
141102/161150.689, request, http://Thinker-LQ:3000: get /liqiang {} 200 (37ms) 
141102/161155.812, request, http://Thinker-LQ:3000: get / {} 200 (4ms)

时间: 2024-11-05 20:37:24

HapiJS开发手册的相关文章

最新ThinkPHP3.2.3完全开发手册.chm下载地址(花了3小时制作完成)。

立即下载ThinkPHP3.2.3完全开发手册.chm ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持. 3.2版本则在原来的基础上进行一些架构的调整,引入了命名空间支持和模块化的完善,为大型应用和模块化开发提供了更多的便利. 3.2.3 主要更新 数据库驱动完全用PDO

火星人敏捷开发手册视频培训上线了!

CSDN教育频道上线说起来已经是旧闻了,<火星人敏捷开发手册>的网址是:http://edu.csdn.net/course/detail/164 以前录制过一个1小时的版本,不过讲解得没有这次15分钟×8课时的好.

谷歌Web中文开发手册:1目的&amp;目录

原文:https://developers.google.com/web/fundamentals/getting-started/your-first-multi-screen-site/ 你的第一个适应多屏幕的网站 现在有一系列的智能手机和大屏幕显示设备(甚至是电视),所以我们需要学习怎样开发一个可以在这些设备中都表现良好的网站. 多屏幕适应的开发经验并不是那么难.根据这个系列的教程,一起来做一个例子: https://www.udacity.com/course/cs256 CS256 M

阿里巴巴Java开发手册

序号 文档名及下载地址 1 阿里巴巴Java开发手册v1.2.0 其他

《阿里巴巴Java开发手册(正式版》读记

前几天,阿里巴巴发布了<阿里巴巴Java开发手册(正式版>,第一时间下载阅读了一番. 不同于一般大厂内部的代码规范,阿里巴巴的这本Java开发手册,可谓包罗万象,几乎日常Java开发中方方面面都有所涉及. 在知乎上,也有关于这本开发手册的讨论十分热烈的帖子. 由于里面涉及的内容比较多,下面重点罗列下一些我读过之后十分赞同与持保留意见的条目: (一)编码规范 (一)命名规约 8. [强制]POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误. 反例:定义为基本数据类型b

【转】线程池体系介绍及从阿里Java开发手册学习线程池的正确创建方法

jdk1.7中java.util.concurrent.Executor线程池体系介绍 java.util.concurrent.Executor : 负责线程的使用与调度的根接口  |–ExecutorService:Executor的子接口,线程池的主要接口  |–ThreadPoolExecutor:ExecutorService的实现类  |–ScheduledExecutorService:ExecutorService的子接口,负责线程的调度  |–ScheduledThreadPo

Android开发手册 安卓学习教程手册(MtAndroid开发手册)

发布本资料须遵守开放出版许可协议 1.0 或者更新版本. 未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本. 未经版权所有者事先授权,禁止将此作品及其衍生作品以标准(纸质)书籍形式发行. 如果有兴趣再发行或再版本手册的全部或部分内容,不论修改过与否,或者有任何问题,请联系版权所有者 [email protected]. Android开发者必备学习手册,基础和进阶手册. (MtAndroid开发手册) Android开发手册 安卓学习教程手册(MtAndroid开发手册),布布扣,b

Java开发手册 Java学习手册教程(MtJava开发手册)

本文档的版权归MtJava文档小组所有,本文档及其描述的内容受有关法律的版权保护,对本文档内容的任何形式的非法复制,泄露或散布,将导致相应的法律责任. MtJava只是一个学习Java的简化版本,适合有一些Java基础的人学习参考,主要是为了辅助MtAndroid的学习者学习的文档 Java开发手册 Java学习手册教程(MtJava开发手册),布布扣,bubuko.com

weiPHP----OneThink1.0开发手册

OneThink1.0开发手册 OneThink系列开发手册在线版 登录 简介 安装 后台使用帮助 架构设计 二次开发指南 附录 安装 复制本页链接 普通环境安装 环境需求: PHP>=5.3.0 扩展 Mysql/Mysqli/PDO , GD2 ,mbstring 在环境检测通过后,最重要的步骤就是填写数据库信息了. 数据库连接类型 : 根据php安装的数据库扩展选择,建议mysqli,不建议mysql 数据库服务器:数据库和web服务器位于同一服务器时,填写127.0.0.1或localh