欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js開源應(yīng)用框架HapiJS介紹

 更新時(shí)間:2015年01月14日 09:33:28   投稿:junjie  
這篇文章主要介紹了Node.js開源應(yīng)用框架HapiJS介紹,本文講解了HapiJS介紹、HapiJS安裝和項(xiàng)目配置和開發(fā)實(shí)例等內(nèi)容,需要的朋友可以參考下

一、HapiJS介紹

HapiJS是一個(gè)開源的、基于Node.js的應(yīng)用框架,它適用于構(gòu)建應(yīng)用程序和服務(wù),其設(shè)計(jì)目標(biāo)是讓開發(fā)者把精力集中于開發(fā)可重用的應(yīng)用程序的業(yè)務(wù)邏輯,向開發(fā)者提供構(gòu)建應(yīng)用程序業(yè)務(wù)邏輯所需的基礎(chǔ)設(shè)施。HapiJS目前的最新版本為7.2.0版。

二、HapiJS安裝和項(xiàng)目配置

1、安裝Hapi庫
HapiJS的安裝很簡單,執(zhí)行如下命令:

復(fù)制代碼 代碼如下:

$ 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、配置項(xiàng)目

1)創(chuàng)建一個(gè)名為myproject的新目錄

復(fù)制代碼 代碼如下:

$ mkdir myproject
$ cd myproject

2)在目錄下運(yùn)行初始化命令
復(fù)制代碼 代碼如下:

$ npm init

此命令會(huì)生成package.json文件,它是項(xiàng)目的元數(shù)據(jù)。
接著執(zhí)行命令:
復(fù)制代碼 代碼如下:

$ npm install --save hapi

它會(huì)安裝hapi庫到項(xiàng)目下,并把hapi的依賴關(guān)系寫入package.json。

此時(shí),項(xiàng)目開發(fā)所需的一切都已經(jīng)準(zhǔn)備完畢。

三、開發(fā)實(shí)例

1、創(chuàng)建服務(wù)器

復(fù)制代碼 代碼如下:

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

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


首先,我們需要Hapi庫。
其次,我們創(chuàng)建一個(gè)新hapi服務(wù)器對(duì)象,并把要監(jiān)聽的端口號(hào)傳遞給服務(wù)器對(duì)象。
最后,服務(wù)器對(duì)象啟動(dòng),并輸出日志信息。
要說明一點(diǎn),我們創(chuàng)建服務(wù)器對(duì)象時(shí),可以提供主機(jī)名、IP地址,甚至是Unix的socket文件,或者是Windows系統(tǒng)綁定到服務(wù)器命名的管道。

2、啟動(dòng)服務(wù)器
執(zhí)行命令:

復(fù)制代碼 代碼如下:

$ node server.js

訪問http://127.0.0.1:3000/ ,瀏覽器顯示如下內(nèi)容:
復(fù)制代碼 代碼如下:

{"statusCode":404,"error":"Not Found"}

很正常,因?yàn)榉?wù)器上本身就沒有任何內(nèi)容,下面把路由邏輯添加上。

3、路由邏輯

復(fù)制代碼 代碼如下:

// 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);
});

再次啟動(dòng)服務(wù)器:

復(fù)制代碼 代碼如下:

$ node server.js

并訪問http://127.0.0.1:3000/ ,瀏覽器顯示如下內(nèi)容:
Hello, world!
訪問http://127.0.0.1:3000/張三 ,瀏覽器顯示如下內(nèi)容:
Hello, %E5%BC%A0%E4%B8%89!

可見,路由邏輯運(yùn)行正常。

要注意:
method的參數(shù)可以是任意有效的HTTP方法,也可以是星號(hào)*(表示任意HTTP方法)。
path的參數(shù)定義了訪問路徑,路徑可以包含參數(shù)、可選參數(shù),甚至是通配符。

四、使用插件

在創(chuàng)建Web應(yīng)用時(shí),通常我們都需要訪問日志。要為應(yīng)用程序添加基本的日志輸出,我們可以在服務(wù)器上加載good插件。

1、安裝good插件

復(fù)制代碼 代碼如下:

$ 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的代碼
復(fù)制代碼 代碼如下:

// 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);
});
});


運(yùn)行server.js,控制臺(tái)輸出:
復(fù)制代碼 代碼如下:

141102/161007.644, info, Server running at: http://localhost:3000

如果我們接著訪問:http://127.0.0.1:3000/liqiang
和http://127.0.0.1:3000/
控制臺(tái)會(huì)繼續(xù)輸出:
復(fù)制代碼 代碼如下:

141102/161150.689, request, http://Thinker-LQ:3000: get /liqiang {} 200 (37ms)
141102/161155.812, request, http://Thinker-LQ:3000: get / {} 200 (4ms)

相關(guān)文章

  • 從Node.js事件觸發(fā)器到Vue自定義事件的深入講解

    從Node.js事件觸發(fā)器到Vue自定義事件的深入講解

    這篇文章主要給大家介紹了關(guān)于從Node.js事件觸發(fā)器到Vue自定義事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • node.js中的url.resolve方法使用說明

    node.js中的url.resolve方法使用說明

    這篇文章主要介紹了node.js中的url.resolve方法使用說明,本文介紹了url.resolve的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs中安裝ghost出錯(cuò)的原因及解決方法

    nodejs中安裝ghost出錯(cuò)的原因及解決方法

    本篇文章主要介紹了nodejs中安裝ghost出錯(cuò)的原因及解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • node.js如何充分利用多核cpu

    node.js如何充分利用多核cpu

    這篇文章主要介紹了node.js如何充分利用多核cpu,想了解node.js的同學(xué),可以參考下
    2021-04-04
  • 對(duì)node通過fs模塊判斷文件是否是文件夾的實(shí)例講解

    對(duì)node通過fs模塊判斷文件是否是文件夾的實(shí)例講解

    今天小編就為大家分享一篇對(duì)node通過fs模塊判斷文件是否是文件夾的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • nodejs log4js 使用詳解

    nodejs log4js 使用詳解

    這篇文章主要介紹了nodejs log4js 使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Node之簡單的前后端交互(實(shí)例講解)

    Node之簡單的前后端交互(實(shí)例講解)

    下面小編就為大家?guī)硪黄狽ode之簡單的前后端交互(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • nodejs對(duì)express中next函數(shù)的一些理解

    nodejs對(duì)express中next函數(shù)的一些理解

    這篇文章主要介紹了nodejs對(duì)express中next函數(shù)的一些理解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用express+multer實(shí)現(xiàn)node中的圖片上傳功能

    使用express+multer實(shí)現(xiàn)node中的圖片上傳功能

    這篇文章主要介紹了使用express+multer實(shí)現(xiàn)node中的圖片上傳功能,需要的朋友可以參考下
    2018-02-02
  • Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能

    Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能

    本文通過代碼給大家介紹了Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧
    2017-09-09

最新評(píng)論