Créer et exécuter un projet Hapi.js
Qu'est-ce que Hapi.js ?
Hapi.js est un framework Node.js puissant et flexible pour la création d'applications et de services. Il a été créé par Walmart Labs et est renommé pour son système de plugins et ses fonctionnalités riches. Hapi.js offre une méthode simple pour gérer les requêtes et réponses HTTP, permettant aux développeurs de construire des applications Web et des API performantes de manière plus efficace.
Principales caractéristiques et avantages de Hapi.js
- Système de plugins : Hapi.js dispose d'un système de plugins puissant, facilitant l'extension et la réutilisation du code.
- Système de routage : Il offre des définitions et un traitement de routage flexibles et puissants.
- Validation d'entrée : Intègre une validation d'entrée robuste assurant l'intégrité et la sécurité des données.
- Écosystème riche : Dispose de nombreux plugins et d'un support communautaire couvrant divers besoins fonctionnels.
- Sécurité : Inclut diverses fonctionnalités de sécurité pour prévenir les attaques CSRF et XSS.
Utiliser Hapi.js permet aux développeurs de créer rapidement des applications Web et des API performantes et sécurisées.
Créer et exécuter un projet Hapi.js avec ServBay
Dans cet article, nous allons utiliser l'environnement Node.js fourni par ServBay pour créer et exécuter un projet Hapi.js. Nous utiliserons la fonction « hôte » de ServBay pour configurer un serveur Web et accéder au projet via un proxy inverse.
Créer un projet Hapi.js
Initialiser le projet
Tout d'abord, assurez-vous d'avoir installé l'environnement Node.js fourni par ServBay. Ensuite, créez un nouveau projet Hapi.js dans le répertoire racine conseillé par 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
5Créer le fichier d'application
Créez un fichier
server.js
dans le répertoire racine du projet et ajoutez le code suivant :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
Entrer en mode développement
Exécuter le serveur de développement
Lancez le serveur de développement et spécifiez le port (par exemple : 8585) :
bashPORT=8585 node server.js
1Cela démarrera un serveur de développement local et exposera le port 8585.
Configurer le proxy inverse de l'hôte ServBay
Utilisez la fonction « hôte » de ServBay pour accéder au serveur de développement via un proxy inverse. Dans les paramètres « hôte » de ServBay, ajoutez un nouveau proxy inverse :
- Nom :
My first Hapi.js dev site
- Domaine :
servbay-hapi-test.dev
- Type d'hôte :
Proxy inverse
- IP :
127.0.0.1
- Port :
8585
Pour des instructions détaillées, consultez ajouter un site de développement Nodejs.
- Nom :
Accéder au mode développement
Ouvrez un navigateur et accédez à
https://servbay-hapi-test.dev
pour voir le projet en temps réel. Grâce au support de ServBay pour des domaines personnalisés et des certificats SSL gratuits, vous bénéficierez d'une sécurité accrue.
Déployer en production
Préparer l'environnement de production
Assurez-vous que votre projet fonctionne correctement en environnement de production. Généralement, les projets Hapi.js ne nécessitent pas de procédures de compilation spécifiques, mais vous pourriez avoir besoin de configurer certaines variables d'environnement ou autres paramètres.
Exécuter le serveur de production
Lancez le serveur de production et spécifiez le port (par exemple : 8586) :
bashPORT=8586 NODE_ENV=production node server.js
1Configurer le proxy inverse de l'hôte ServBay
Utilisez la fonction « hôte » de ServBay pour accéder au serveur de production via un proxy inverse. Dans les paramètres « hôte » de ServBay, ajoutez un nouveau proxy inverse :
- Nom :
My first Hapi.js production site
- Domaine :
servbay-hapi-test.prod
- Type d'hôte :
Proxy inverse
- IP :
127.0.0.1
- Port :
8586
- Nom :
Accéder au mode production
Ouvrez un navigateur et accédez à
https://servbay-hapi-test.prod
pour voir la version de production. En utilisant les domaines personnalisés et les certificats SSL gratuits de ServBay, votre site bénéficiera d'une sécurité et d'une crédibilité accrues.
Connexion à la base de données
ServBay propose le support de bases de données comme Redis, MariaDB, PostgreSQL et MongoDB. Voici comment se connecter à ces bases de données.
Connexion à MongoDB
Installez
@hapi/nes
etmongoose
:bashnpm install mongoose
1Ensuite, importez-les dans le projet et connectez-vous :
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
5Connexion à Redis
Installez
redis
:bashnpm install redis
1Ensuite, importez-le dans le projet et connectez-vous :
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
10Connexion à MariaDB
Installez
mariadb
:bashnpm install mariadb
1Ensuite, importez-le dans le projet et connectez-vous :
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
16Connexion à PostgreSQL
Installez
pg
:bashnpm install pg
1Ensuite, importez-le dans le projet et connectez-vous :
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
En suivant ces étapes, vous avez créé et exécuté avec succès un projet Hapi.js et utilisé les fonctionnalités fournies par ServBay pour gérer et accéder à votre projet, tout en connectant différentes bases de données.