Creare e eseguire un progetto Hapi.js
Cos'è Hapi.js?
Hapi.js è un potente e flessibile framework Node.js per la costruzione di applicazioni e servizi. È stato creato da Walmart Labs e si distingue per il suo sistema di plugin e le sue funzionalità ricche. Hapi.js offre un modo semplice per gestire le richieste e le risposte HTTP, consentendo agli sviluppatori di costruire applicazioni Web e API ad alte prestazioni in modo più efficiente.
Principali caratteristiche e vantaggi di Hapi.js
- Sistema di plugin: Hapi.js ha un potente sistema di plugin che facilita l'estensione e il riutilizzo del codice.
- Sistema di routing: Offre funzionalità flessibili e potenti per la definizione e la gestione delle rotte.
- Validazione degli input: Integra un potente sistema di validazione degli input per garantire l'integrità e la sicurezza dei dati.
- Ecosistema ricco: Ha un'ampia gamma di plugin e supporto della comunità, coprendo vari requisiti funzionali comuni.
- Sicurezza: Integra diverse funzionalità di sicurezza, come la protezione contro CSRF e attacchi XSS.
L'uso di Hapi.js può aiutare gli sviluppatori a costruire rapidamente applicazioni Web e API ad alte prestazioni e sicure.
Creare ed eseguire un progetto Hapi.js usando ServBay
In questo articolo, utilizzeremo l'ambiente Node.js fornito da ServBay per creare ed eseguire un progetto Hapi.js. Utilizzeremo la funzione 'Host' di ServBay per impostare il nostro server Web e implementare l'accesso al progetto tramite reverse proxy.
Creare un progetto Hapi.js
Inizializzare il progetto
Per prima cosa, assicurati di aver installato l'ambiente Node.js fornito da ServBay. Quindi, crea un nuovo progetto Hapi.js nella directory radice del sito web consigliata da 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
5Creare il file dell'applicazione
Nella directory radice del progetto, crea un file
server.js
e aggiungi il seguente codice: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
Entrare in modalità di sviluppo
Eseguire il server di sviluppo
Avvia il server di sviluppo e specifica la porta (ad esempio: 8585):
bashPORT=8585 node server.js
1Questo avvierà un server di sviluppo locale esponendo la porta 8585.
Configurare il reverse proxy Host di ServBay
Utilizza la funzione 'Host' di ServBay per accedere al server di sviluppo tramite reverse proxy. Nelle impostazioni 'Host' di ServBay, aggiungi un nuovo reverse proxy:
- Nome:
My first Hapi.js dev site
- Dominio:
servbay-hapi-test.dev
- Tipo di Host:
Reverse Proxy
- IP:
127.0.0.1
- Porta:
8585
Per i dettagli su come configurare, fai riferimento a aggiungere un sito di sviluppo Nodejs.
- Nome:
Accedere alla modalità di sviluppo
Apri il browser e visita
https://servbay-hapi-test.dev
per visualizzare il progetto in tempo reale. Grazie al supporto di ServBay per domini personalizzati e certificati SSL gratuiti, beneficerai di maggiore sicurezza.
Distribuire la versione di produzione
Preparare l'ambiente di produzione
Assicurati che il tuo progetto funzioni correttamente nell'ambiente di produzione. Di solito, i progetti Hapi.js non richiedono passaggi di build speciali, ma potresti dover impostare alcune variabili di ambiente o altre configurazioni.
Eseguire il server di produzione
Avvia il server di produzione e specifica la porta (ad esempio: 8586):
bashPORT=8586 NODE_ENV=production node server.js
1Configurare il reverse proxy Host di ServBay
Utilizza la funzione 'Host' di ServBay per accedere al server di produzione tramite reverse proxy. Nelle impostazioni 'Host' di ServBay, aggiungi un nuovo reverse proxy:
- Nome:
My first Hapi.js production site
- Dominio:
servbay-hapi-test.prod
- Tipo di Host:
Reverse Proxy
- IP:
127.0.0.1
- Porta:
8586
- Nome:
Accedere alla modalità di produzione
Apri il browser e visita
https://servbay-hapi-test.prod
per visualizzare la versione di produzione. Grazie ai domini personalizzati e ai certificati SSL gratuiti di ServBay, il tuo sito sarà più sicuro e affidabile.
Connessione al database
ServBay offre supporto per i database Redis, MariaDB, PostgreSQL e MongoDB. Di seguito sono riportati esempi di connessione a questi database.
Connessione a MongoDB
Installa
@hapi/nes
emongoose
:bashnpm install mongoose
1Quindi includi e connetti nel progetto:
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
5Connessione a Redis
Installa
redis
:bashnpm install redis
1Quindi includi e connetti nel progetto:
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
10Connessione a MariaDB
Installa
mariadb
:bashnpm install mariadb
1Quindi includi e connetti nel progetto:
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
16Connessione a PostgreSQL
Installa
pg
:bashnpm install pg
1Quindi includi e connetti nel progetto:
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
Seguendo questi passaggi, hai creato ed eseguito con successo un progetto Hapi.js, utilizzando le funzionalità fornite da ServBay per gestire e accedere al tuo progetto, connesso a diversi tipi di database.