HapiJS开发手册

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/40721783 HapiJS开发手册作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/40721783
HapiJS开发手册
作者:chszs,转载需注明。博客主页: http://blog.csdn.net/chszs

一、HapiJS介绍

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

二、HapiJS安装和项目配置

1、安装Hapi库
HapiJS的安装很简单,执行如下命令:
$ sudo npm install hapi -g
hapi@7.2.0 /usr/local/lib/node_modules/hapi
├── cryptiles@2.0.4
├── heavy@1.0.0
├── topo@1.0.2
├── accept@1.0.0
├── items@1.1.0
├── kilt@1.1.1
├── catbox-memory@1.1.0
├── boom@2.5.1
├── qs@2.2.4
├── call@1.0.0
├── statehood@1.2.0
├── h2o2@2.0.1
├── iron@2.1.2
├── shot@1.3.5
├── glue@1.0.0
├── wreck@5.0.1
├── hoek@2.8.0
├── catbox@4.0.3
├── vision@1.1.0
├── mimos@1.0.0 (mime-db@1.1.1)
├── rejoice@1.0.0 (bossy@1.0.2)
├── inert@1.1.0 (lru-cache@2.5.0)
├── joi@4.7.0 (isemail@1.1.1)
└── subtext@1.0.1 (content@1.0.1, pez@1.0.0)

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
good@3.1.1 node_modules/good
├── json-stringify-safe@5.0.0
├── good-reporter@2.0.0
├── async@0.9.0
├── hoek@2.8.1
├── moment@2.8.3
├── good-file@2.0.0 (items@1.1.0)
└── joi@4.7.0 (topo@1.0.2, isemail@1.1.1)

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) 


目录
相关文章
|
7月前
|
前端开发 JavaScript 关系型数据库
前端网页手册(1)--基础学习
前端网页手册(1)--基础学习
37 1
|
7月前
|
存储 Java Linux
产品入门第一讲:Axure的安装以及基本使用
产品入门第一讲:Axure的安装以及基本使用
|
7月前
|
Web App开发 前端开发 JavaScript
【前端学习指南】基础开发环境搭建
【1月更文挑战第26天】【前端学习指南】基础开发环境搭建
|
7月前
|
前端开发 容器
前端知识笔记(三)———CSS核心功能手册:从熟悉到精通
前端知识笔记(三)———CSS核心功能手册:从熟悉到精通
55 0
|
7月前
|
前端开发 容器
前端知识笔记(二十七)———CSS核心功能手册:从熟悉到精通
前端知识笔记(二十七)———CSS核心功能手册:从熟悉到精通
55 0
|
前端开发
《2020前端工程师必读手册》下载
阿里巴巴前端委员会推荐!覆盖5大热点前端技术方向、10+核心实战的前端手册--《2020前端工程师必读手册》已经正式上线了,语言框架/智能化/微前端/Server tess/工程化5大方向实战解读,解锁前端新方式,挖掘前端新思路。
96 3
《2020前端工程师必读手册》下载
|
JavaScript NoSQL 前端开发
手把手教你如何使用NodeJs和JavaScript开发微信公众号(二)
手把手教你如何使用NodeJs和JavaScript开发微信公众号
400 0
手把手教你如何使用NodeJs和JavaScript开发微信公众号(二)
|
移动开发 JavaScript 前端开发
手把手教你如何使用NodeJs和JavaScript开发微信公众号(一)
手把手教你如何使用NodeJs和JavaScript开发微信公众号
364 0
手把手教你如何使用NodeJs和JavaScript开发微信公众号(一)
|
前端开发 JavaScript API
手把手教你如何使用NodeJs和JavaScript开发微信公众号(三)
手把手教你如何使用NodeJs和JavaScript开发微信公众号
207 0
手把手教你如何使用NodeJs和JavaScript开发微信公众号(三)
|
前端开发 JavaScript Java
超好用的前端学习速查手册分享
虽然之前学习过html、css、js,以及bootstrap与jQuery的相关知识,但是一直没有系统的串起来。最新迷上了前端开发的内容,每天总要找几个例子学着做一下。编程的学习没有捷径,能力都是一行行代码敲出来的。 但是在学习过程中也会遇到一些问题,比如有些标签、或者样式内容忘记了,该怎么查询呢?今天专门给大家分享一下最近搜集的好东西。
226 0

热门文章

最新文章