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

 更新时间:2015年01月14日 09:33:28   投稿:junjie  
这篇文章主要介绍了Node.js开源应用框架HapiJS介绍,本文讲解了HapiJS介绍、HapiJS安装和项目配置和开发实例等内容,需要的朋友可以参考下

一、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)

相关文章

  • node 使用 nodemailer工具发送验证码到邮箱

    node 使用 nodemailer工具发送验证码到邮箱

    最近闲着没事,我就在练习使用node和mysql编写接口,计划写一个完整的vue系统,这篇文章主要介绍了node 使用 nodemailer工具发送验证码到邮箱,需要的朋友可以参考下
    2023-10-10
  • Node 自动化部署的方法

    Node 自动化部署的方法

    本篇文章主要介绍了Node 自动化部署的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 测试驱动ChatGPT编程示例详解

    测试驱动ChatGPT编程示例详解

    这篇文章主要为大家介绍了测试驱动ChatGPT编程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • NodeJS同步和异步实例代码讲述异步编程

    NodeJS同步和异步实例代码讲述异步编程

    异步编程是NodeJS最大的特点,异步编程依托于回调来实现,有很多特有的代码设计模式,为了实现同样的功能,使用同步方式和异步方式编写的代码会有很大差异,本文通过几个同步和异步实例代码讲述异步编程的使用方法
    2024-01-01
  • 从零学习node.js之利用express搭建简易论坛(七)

    从零学习node.js之利用express搭建简易论坛(七)

    这篇文章主要介绍了node.js利用express搭建简易论坛的方法,我们需要搭建的这个简易的论坛主要的功能有:注册、登录、发布主题、回复主题。下面我们来一步步地讲解这个系统是如何实现的,需要的朋友可以参考借鉴。
    2017-02-02
  • node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法

    node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法

    这篇文章主要介绍了node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法,需要的朋友可以参考下
    2014-11-11
  • 快速掌握Node.js事件驱动模型

    快速掌握Node.js事件驱动模型

    这篇文章主要为大家详细介绍了Node.js事件驱动模型,首先了解一下传统的线程网络模型,然后再学习了解Node.js事件驱动模型,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 浅析Node.js实用的内置API

    浅析Node.js实用的内置API

    这篇文章主要介绍了Node.js实用的内置API,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 浅谈Nodejs观察者模式

    浅谈Nodejs观察者模式

    这篇文章主要介绍了浅谈Nodejs观察者模式的相关资料,需要的朋友可以参考下
    2015-10-10
  • node.js中module模块的功能理解与用法实例分析

    node.js中module模块的功能理解与用法实例分析

    这篇文章主要介绍了node.js中module模块的功能理解与用法,结合实例形式分析了node.js module模块的基本功能、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2020-02-02

最新评论