Créer une application Web Hapi.js à laide de Node.js sur Ubuntu 16.04

Hapi.js est un framework Node.js riche, robuste et puissant conçu pour créer des applications Web dans l'écosystème Node.js. Sa conception simple facilite la prise en main. Hapi utilise de nombreuses fonctionnalités JavaScript ES6 les plus récentes, telles que les promesses ES6. Pour ceux d'entre vous qui ont déjà utilisé Express, Hapi vous permet d'essayer quelque chose de nouveau et de découvrir toutes les dernières fonctionnalités JavaScript.

Dans ce tutoriel, notre objectif sera de configurer une page Web de base Hapi.js, hébergée depuis notre Vultr VPS, sur Ubuntu 16.04 LTS. Pour ceux qui ont un domaine pour leur site, nous utiliserons un proxy inverse pour lier notre domaine à notre site Web. Enfin, nous apprendrons à le gérer avec un gestionnaire de processus. Maintenant que nous avons éliminé cela, commençons.

Installation de Node.js

Nous devrons installer Node.js. Pour ce faire sur Ubuntu 16.04 LTS, suivez ces instructions.

Ajout du référentiel

Nous devrons ajouter le référentiel NodeSource APT, qui contient la dernière version LTS de Node.js.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Nous téléchargeons un script que nous utiliserons pour ajouter le référentiel à notre liste de sources, ainsi que pour installer Node.js à partir du référentiel NodeSource.

Installation des outils de construction

En plus d'installer Node.js lui-même, nous devrons également installer certains outils de construction nécessaires, qui vous aideront à créer tous les modules que nous pourrions avoir besoin d'installer.

sudo apt-get install -y build-essential

Cela télécharge et installe simplement les outils de construction à partir du référentiel.

Configuration du répertoire d'application

Il est recommandé de désigner un dossier que nous utiliserons pour notre application, qui contiendra toutes les données de notre application, telles que les fichiers de configuration et les scripts de démarrage. Créez un dossier en le nommant comme vous le souhaitez. Pour les besoins de ce didacticiel, je suppose que vous l'avez nommé site.

mkdir site

Une fois que vous avez créé le dossier, nous pouvons maintenant le changer. Assurez-vous que vous êtes dans le répertoire que vous venez de créer, démarrez l'assistant de package NPM.

npm init

Il vous demandera de saisir quelques éléments différents, tels que le nom de votre application, le fichier de démarrage, la licence, etc. La plupart des champs que vous pouvez laisser par défaut, à l'exception des champs les plus évidents, tels que le nom de votre application. Au final, cela ressemblera à ceci:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Hapi.js site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rich",
  "license": "MIT"
}

Une fois que vous êtes satisfait du résultat, cliquez ENTERpour enregistrer le fichier.

Installation de Hapi.js

Maintenant que votre répertoire a été construit avec succès, nous pouvons maintenant procéder à l'installation de Hapi.js. Comme mentionné précédemment, nous utiliserons NPM pour télécharger Hapi.js, ainsi que ses dépendances, pour notre projet. Dans le répertoire du projet, exécutez ce qui suit.

npm install hapi.js

Cela télécharge Hapi.js depuis NPM et l'installe dans notre répertoire de projet. Dans le même temps, toutes les dépendances sur lesquelles Hapi.js peut s'appuyer sont également téléchargées pour notre commodité.

Configuration de notre exemple d'application

Il est maintenant temps de configurer notre fichier d'application de base Hapi.js. Il contiendra tout notre code pour l'application. Plus loin sur la route, nous pouvons développer notre code d'application et y ajouter d'autres choses, comme bon nous semble.

Ensuite, nous allons créer notre fichier de démarrage. Reportez-vous à la mainsection de votre package.jsonfichier pour déterminer exactement comment nommer le fichier. Puisque j'ai utilisé le schéma de nommage par défaut, notre fichier sera appelé index.js.

nano index.js

Une fois que vous êtes à l'intérieur de l'éditeur de texte nano, créez votre code d'application de base, comme ça.

const Hapi=require('hapi');
const server=Hapi.server({
    host:'localhost',
    port: 3000
});

server.route({
    method:'GET',
    path:'/',
    handler:((request,h)) => {
        return 'Sample Hapi.js Application';
    }
});
async function start() {

    try {
        await server.start();
    } catch (err) {
        console.log(err);
        process.exit(1);
    }
    console.log(`Our server is running! ${server.info.uri}`);
};

start();

Tout d'abord, nous importons le module Hapi. Ensuite, nous initialisons notre constructeur de serveur, qui contient l'hôte sur lequel nous voulons exécuter le serveur, ainsi que le port, qui est 3000destiné à ce didacticiel. Ensuite, nous avons mis en place un routeur de base, ce qui indique que chaque fois que quelqu'un visite le site, il sera accueilli par un simple message. Pour couronner le tout, nous avons une fonction asynchrone, pour démarrer notre serveur, qui se connectera à la console que notre serveur exécute. Lorsque vous avez terminé, enregistrez et fermez le fichier ( CTRL+ X)

Maintenant que notre fichier principal est configuré, nous sommes prêts à démarrer notre application.

node index.js

Si vous voyez " Our server is running!" dans la console, le serveur a démarré correctement.

Installer Nginx

Étant donné que Nginx est disponible dans les référentiels Ubuntu par défaut, l'installation est simple. Mettez simplement à jour vos listes de paquets et installez-le.

sudo apt update
sudo apt install nginx -y 

Après avoir actualisé les listes de packages, Nginx et ses dépendances seront installés.

Configurer Nginx

Pour que Nginx inverse le proxy de notre application, nous devons créer un fichier de configuration. Ce fichier de configuration contiendra des informations sur notre application, que Nginx utilisera pour le proxy inverse.

Supprimez la configuration par défaut créée par Nginx, car nous la remplacerons par la nôtre plus tard.

sudo rm /etc/nginx/sites-enabled/default

Créez un nouveau fichier dans le sites-availabledossier. Quant à la dénomination, nous pouvons nous en tenir simplement site, pour plus de simplicité.

sudo nano /etc/nginx/sites-available/site

Dans le fichier, collez ce qui suit et enregistrez.

server {
    listen 80;
    location / {
          proxy_set_header X-Real-IP 
          $remote_addr;
          proxy_set_header 
          X-Forwarded-For 
          $proxy_add_x_forwarded_for;
          proxy_set_header Host 
          $http_host;
          proxy_set_header 
        X-NginX-Proxy true; proxy_pass 
       http://127.0.0.1:3000/;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade 
     $http_upgrade;
    proxy_set_header Connection 
    "upgrade";
    proxy_redirect off;
    proxy_set_header 
   X-Forwarded-Proto $scheme;
    }
}

Dans ce fichier, nous disons à Nginx d'écouter sur le port 80. Nous définissons également le relais proxy sur l' localhostadresse et le port 3000, qui est le même port que notre application Hapi.

Vous pouvez maintenant revenir au répertoire de votre application et démarrer le site. Une fois le site démarré, naviguez simplement vers http://yourdomain.comou http://yourip, et vous verrez le texte " Hello World".

Installer PM2

PM2 peut être trouvé dans le référentiel NPM, et vous pouvez l'installer globalement pour être accessible de n'importe où, comme ça.

sudo npm install pm2 -g

Le -gdrapeau à la fin indique que nous voulons installer le module dans le dossier global modules, ce qui nous permettra de l'utiliser en dehors de notre répertoire de projet. Ceci est utilisé pour que notre projet se comporte comme une application système normale.

Démarrer notre application avec PM2

Une fois que vous avez installé PM2, revenez au répertoire de votre projet. La syntaxe pour démarrer notre application sera légèrement différente maintenant. C'est ainsi que nous procéderons avec PM2.

pm2 start index.js --name site

Nous utilisons la fonction de démarrage PM2, qui crée essentiellement un profil pour notre application, sous le nom site. Après avoir exécuté cette commande, votre site Web démarrera, mais vous remarquerez que les journaux ne s'afficheront pas. C'est parce que la façon dont nous voyons les journaux est maintenant différente.

pm2 logs site

Vous pouvez même spécifier le nombre de lignes de journaux que vous souhaitez voir, avec l' --linesargument.

Conclusion

Vous avez réussi à configurer un serveur Web Hapi.js, à effectuer un proxy inverse avec Nginx et à apprendre à mieux le gérer avec PM2. Avec ces connaissances, vous pouvez développer ce didacticiel et créer une application Hapi.js très avancée. Pour en savoir plus sur les possibilités de Hapi, visitez leur documentation officielle . Si vous souhaitez en savoir plus sur les possibilités de PM2, consultez leur guide de démarrage rapide .



LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.