Создание и запуск проекта на Hapi.js
Что такое Hapi.js?
Hapi.js — это мощный и гибкий фреймворк для Node.js, предназначенный для создания приложений и сервисов. Он был разработан в Walmart Labs и известен своей плагин-системой и разнообразными функциями. Hapi.js предоставляет простой способ обработки HTTP-запросов и ответов, что позволяет разработчикам более эффективно создавать высокопроизводительные веб-приложения и API.
Основные особенности и преимущества Hapi.js
- Плагин-система: Hapi.js обладает мощной плагин-системой, которая позволяет легко расширять и переиспользовать код.
- Маршрутизация: Предоставляет гибкие и мощные возможности для определения и обработки маршрутов.
- Валидация входных данных: Встроенная мощная валидация входных данных обеспечивает целостность и безопасность данных.
- Богатая экосистема: Имеет обширную библиотеку плагинов и поддержку сообщества, охватывающую различные функциональные потребности.
- Безопасность: Встроенные функции безопасности, такие как защита от CSRF и XSS атак.
Использование Hapi.js помогает разработчикам быстро создавать высокопроизводительные и безопасные веб-приложения и API.
Создание и запуск проекта на Hapi.js с помощью ServBay
В этой статье мы создадим и запустим проект на Hapi.js с использованием предоставленной ServBay среды Node.js. Мы будем использовать функцию «Хостинг» ServBay для настройки веб-сервера и реализация доступа к проекту через обратный прокси.
Создание проекта на Hapi.js
Инициализация проекта
Сначала убедитесь, что вы установили среду Node.js, предоставленную ServBay. Затем создайте новый проект на Hapi.js в корневом каталоге сайта, рекомендованном ServBay:
/Applications/ServBay/www
:bashcd /Applications/ServBay/www mkdir servbay-hapi-app cd servbay-hapi-app npm init -y npm install @hapi/hapi
1
2
3
4
5Создание файлов приложения
В корневом каталоге проекта создайте файл
server.js
и добавьте следующий код:javascriptconst Hapi = require('@hapi/hapi'); const init = async () => { const server = Hapi.server({ port: process.env.PORT || 3000, host: 'localhost' }); server.route({ method: 'GET', path: '/', handler: (request, h) => { return 'Hello ServBay!'; } }); await server.start(); console.log('Server running on %s', server.info.uri); }; process.on('unhandledRejection', (err) => { console.log(err); process.exit(1); }); init();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Вход в режим разработки
Запуск сервера разработки
Запустите сервер разработки и укажите порт (например: 8585):
bashPORT=8585 node server.js
1Это запустит локальный сервер разработки и откроет порт 8585.
Конфигурация обратного прокси на хосте ServBay
Используйте функцию «Хостинг» ServBay для доступа к серверу разработки через обратный прокси. В настройках хостинга ServBay добавьте новый обратный прокси:
- Название:
My first Hapi.js dev site
- Домен:
servbay-hapi-test.dev
- Тип хоста:
Обратный прокси
- IP:
127.0.0.1
- Порт:
8585
Подробные шаги настройки смотрите в разделе добавление сайта на разработку Nodejs.
- Название:
Доступ в режиме разработки
Откройте браузер и перейдите на
https://servbay-hapi-test.dev
, чтобы увидеть проект в реальном времени. Благодаря поддержке ServBay пользовательских доменов и бесплатных SSL сертификатов, вы получите больше безопасности.
Развертывание производственной версии
Подготовка производственной среды
Убедитесь, что ваш проект работает нормально в производственной среде. Обычно, проект на Hapi.js не требует специальных шагов сборки, но вам может понадобиться настроить некоторые переменные среды или провести другие конфигурации.
Запуск производственного сервера
Запустите производственный сервер и укажите порт (например: 8586):
bashPORT=8586 NODE_ENV=production node server.js
1Конфигурация обратного прокси на хосте ServBay
Используйте функцию «Хостинг» ServBay для доступа к производственному серверу через обратный прокси. В настройках хостинга ServBay добавьте новый обратный прокси:
- Название:
My first Hapi.js production site
- Домен:
servbay-hapi-test.prod
- Тип хоста:
Обратный прокси
- IP:
127.0.0.1
- Порт:
8586
- Название:
Доступ в производственном режиме
Откройте браузер и перейдите на
https://servbay-hapi-test.prod
, чтобы увидеть производственную версию. С использованием пользовательских доменов и бесплатных SSL сертификатов от ServBay, ваш сайт будет иметь более высокую безопасность и доверие.
Подключение к базе данных
ServBay предоставляет поддержку базы данных Redis, MariaDB, PostgreSQL и MongoDB. Вот примеры, как подключиться к этим базам данных.
Подключение к MongoDB
Установите
@hapi/nes
иmongoose
:bashnpm install mongoose
1Затем подключите и подключитесь в проекте:
javascriptconst mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/servbay-hapi-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB connected')) .catch(err => console.log(err));
1
2
3
4
5Подключение к Redis
Установите
redis
:bashnpm install redis
1Затем подключите и подключитесь в проекте:
javascriptconst redis = require('redis'); const client = redis.createClient(); client.on('error', function (err) { console.log('Error ' + err); }); client.on('connect', function () { console.log('Redis client connected'); });
1
2
3
4
5
6
7
8
9
10Подключение к MariaDB
Установите
mariadb
:bashnpm install mariadb
1Затем подключите и подключитесь в проекте:
javascriptconst mariadb = require('mariadb'); const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_hapi_app' }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); //release to pool }) .catch(err => { console.log("Not connected due to error: " + err); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Подключение к PostgreSQL
Установите
pg
:bashnpm install pg
1Затем подключите и подключитесь в проекте:
javascriptconst { Pool } = require('pg'); const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_hapi_app', password: 'password', port: 5432, }); pool.connect((err, client, done) => { if (err) throw err; console.log('Connected to PostgreSQL'); done(); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Следуя этим шагам, вы успешно создали и запустили проект на Hapi.js, использовали функции ServBay для управления и доступа к вашему проекту, и подключились к различным базам данных.