1. Введение в Hapijs
Hapijs-это открытый исходный код, базирующийся на базе Node.js, которая подходит для создания приложений и услуг. Целью проектирования является позволение разработчикам сосредоточиться на разработке бизнес -логики для многократных приложений и предоставить разработчикам инфраструктуру, необходимую для создания бизнес -логики. Последняя версия Hapijs в настоящее время является версией 7.2.0.
2. Установка Hapijs и конфигурация проекта
1. Установите библиотеку HAPI
Установка Hapijs очень проста, выполните следующую команду:
Кода -копия выглядит следующим образом:
$ sudo npm установить hapi -g
[email protected]/usr/local/lib/node_modules/hapi
├ack [email protected]
├--S [email protected]
├ack [email protected]
├ack [email protected]
├ack @1.2.0
├--S [email protected]
├ack [email protected] ([email protected])
[email protected] ([email protected])
á000 [email protected] ([email protected])
├ack [email protected] ([email protected])
└í000 [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.
На этом этапе все, что требуется для разработки проекта, готово.
Iii. Примеры разработки
1. Создать сервер
Кода -копия выглядит следующим образом:
// server.js
var hapi = require ('hapi');
var server = new hapi.server (3000);
Server.Start (function () {
console.log ('сервер, работающий по адресу:', server.info.uri);
});
Во -первых, нам нужна библиотека HAPI.
Во -вторых, мы создаем новый объект сервера HAPI и передаем номер порта в объект сервера.
Наконец, объект сервера запускается, а информация о журнале выводится.
Чтобы быть понятным, когда мы создаем объект сервера, мы можем предоставить имя хоста, IP -адрес или даже файл сокета Unix, или трубопровод, связанный с именем сервера с помощью системы Windows.
2. Запустите сервер
Выполнить команду:
Кода -копия выглядит следующим образом:
$ node server.js
Посетите http://127.0.0.1:3000/, а браузер отображает следующее содержимое:
Кода -копия выглядит следующим образом:
{"StatestCode": 404, "ошибка": "не найден"}
Это нормально, потому что на самом сервере нет ничего, поэтому добавьте логику маршрутизации ниже.
3. Логика маршрутизации
Кода -копия выглядит следующим образом:
// server.js
var hapi = require ('hapi');
var server = new hapi.server (3000);
server.route ({
Метод: 'Get',
путь: '/',
обработчик: function (запрос, ответ) {
Ответить («Привет, мир!»);
}
});
server.route ({
Метод: 'Get',
PATH: '/{name}',
обработчик: function (запрос, ответ) {
Ответить («Привет,» + encodeuricomponent (request.params.name) + »!»);
}
});
Server.Start (function () {
console.log ('сервер, работающий по адресу:', server.info.uri);
});
Запустить сервер снова:
Кода -копия выглядит следующим образом:
$ node server.js
И посетите http://127.0.0.1:3000/, а браузер отображает следующее содержимое:
Привет, мир!
Посетите http://127.0.0.1:3000/zhang San, а в браузере отображаются следующий контент:
Привет,%E5%BC%A0%E4%B8%89!
Видно, что логика маршрутизации работает нормально.
Примечание:
Параметр метода может быть любым действительным методом HTTP или звездочкой* (представляет любой метод HTTP).
Параметр пути определяет путь доступа, который может содержать параметры, необязательные параметры и даже символы подстановочных знаков.
4. Используйте плагины
При создании веб -приложения нам обычно нужно получить доступ к журналу. Чтобы добавить базовый выход для журнала в приложение, мы можем загрузить хороший плагин на сервере.
1. Установите хороший плагин
Кода -копия выглядит следующим образом:
$ sudo npm установка -хорошо
[email protected] node_modules/good
├ack [email protected]
├ack [email protected] ([email protected])
└ack [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 ({
Метод: 'Get',
путь: '/',
обработчик: function (запрос, ответ) {
Ответить («Привет, мир!»);
}
});
server.route ({
Метод: 'Get',
PATH: '/{name}',
обработчик: function (запрос, ответ) {
Ответить («Привет,» + encodeuricomponent (request.params.name) + »!»);
}
});
server.pack.register (good, function (err) {
if (err) {
// случилось что -то плохое. Загрузка плагина
бросить ошибку;
}
Server.Start (function () {
server.log ('info', 'сервер, работающий по адресу:' + server.info.uri);
});
});
Запустить Server.js, вывод консоли:
Кода -копия выглядит следующим образом:
141102/161007.644, информация, сервер, работающий по адресу: http: // localhost: 3000
Если мы продолжим посещать: http://127.0.0.1:3000/liqiang
и http://127.0.0.1:3000/
Консоль будет продолжать выводить:
Кода -копия выглядит следующим образом:
141102/161150.689, запрос, http: // thinker-lq: 3000: get/liqiang {} 200 (37 мс)
141102/161155.812, запрос, http: // thinker-lq: 3000: get/{} 200 (4 мс)