Opret en Hapi.js-webapplikation ved hjælp af Node.js på Ubuntu 16.04

Hapi.js er en rig, robust og kraftfuld Node.js-ramme designet til at bygge webapplikationer i Node.js-økosystemet. Dens enkle design gør den nem at komme i gang med. Hapi bruger mange af de nyeste JavaScript ES6-funktioner i sin kerne, såsom ES6-løfter. For dem af jer, der har brugt Express før, giver Hapi dig mulighed for at prøve noget nyt og opleve alle de nyeste JavaScript-funktioner.

I denne tutorial vil vores mål være at oprette en grundlæggende Hapi.js-webside, som hostes fra vores Vultr VPS, på Ubuntu 16.04 LTS. For dem, der har et domæne til deres websted, vil vi bruge en omvendt proxy til at linke vores domæne til vores websted. Til sidst vil vi lære at styre det med en procesleder. Nu hvor vi har fået det af vejen, lad os komme i gang.

Installerer Node.js

Vi bliver nødt til at installere Node.js. For at gøre det på Ubuntu 16.04 LTS skal du følge disse instruktioner.

Tilføjelse af repository

Vi bliver nødt til at tilføje NodeSource APT-lageret, som indeholder den seneste LTS-udgivelse af Node.js.

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

Vi er ved at downloade et script, som vi vil bruge til at tilføje depotet til vores kildeliste, samt installere Node.js fra NodeSource-depotet.

Installation af byggeværktøjer

Udover at installere selve Node.js, skal vi også installere nogle nødvendige byggeværktøjer, som vil hjælpe med at bygge de moduler, som vi måtte have brug for at installere.

sudo apt-get install -y build-essential

Dette downloader og installerer blot byggeværktøjerne fra depotet.

Opsætning af applikationsmappe

Det er god praksis at udpege en mappe, som vi vil bruge til vores applikation, som vil indeholde alle vores applikations data, såsom konfigurationsfiler og opstartsscripts. Opret en mappe, og giv den et navn, hvad du vil. Af hensyn til denne tutorial antager jeg, at du har navngivet den site.

mkdir site

Når du har lavet mappen, kan vi nu skifte til den. Sørg for, at du er i den mappe, du lige har oprettet, og start NPM-pakkeguiden.

npm init

Det vil bede dig om at indtaste et par forskellige ting, såsom dit programnavn, startfil, licens og så videre. De fleste felter kan du lade være som standard, bortset fra de mere oplagte felter, såsom navnet på din ansøgning. I sidste ende vil det se sådan ud:

{
  "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"
}

Når du er tilfreds med resultatet, skal du klikke for ENTERat gemme filen.

Installation af Hapi.js

Nu hvor din mappe er blevet konstrueret, kan vi nu fortsætte med at installere Hapi.js. Som nævnt før vil vi bruge NPM til at downloade Hapi.js, såvel som dets afhængigheder, til vores projekt. Kør følgende i projektbiblioteket.

npm install hapi.js

Dette downloader Hapi.js fra NPM og installerer det i vores projektmappe. I samme kørsel downloades alle afhængigheder, som Hapi.js kan stole på, også for vores bekvemmelighed.

Opsætning af vores eksempelapplikation

Nu er det tid til at konfigurere vores grundlæggende Hapi.js-applikationsfil. Dette vil indeholde al vores kode til applikationen. Længere hen ad vejen kan vi udvide vores ansøgningskode og tilføje flere ting til den, som vi finder passende.

Dernæst vil vi oprette vores startfil. Gå tilbage til mainsektionen af ​​din package.jsonfil for at bestemme præcist, hvordan filen skal navngives. Da jeg brugte standardnavneskemaet, vil vores fil hedde index.js.

nano index.js

Når du er inde i nano-teksteditoren, skal du oprette din basisapplikationskode som sådan.

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();

Først importerer vi Hapi-modulet. Derefter initialiserer vi vores serverkonstruktør, som indeholder den vært, vi ønsker at køre serveren på, samt porten, som er 3000til denne tutorial. Dernæst opsætter vi en grundlæggende router, som indikerer, at når nogen besøger webstedet, vil de blive mødt med en simpel besked. For at toppe det hele, har vi en async funktion, til at starte vores server, som vil logge på konsollen, som vores server kører. Når du er færdig, skal du gemme og lukke filen ( CTRL+ X)

Nu hvor vores hovedfil er sat op, er vi klar til at starte vores applikation.

node index.js

Hvis du ser " Our server is running!" i konsollen, starter serveren med succes.

Installer Nginx

Da Nginx er tilgængelig i standard Ubuntu-lagre, er installationen ligetil. Du skal blot opdatere dine pakkelister og installere det.

sudo apt update
sudo apt install nginx -y 

Efter at have opdateret pakkelisterne, vil Nginx og dets afhængigheder blive installeret.

Konfigurer Nginx

For at Nginx kan omvendt proxy vores applikation, skal vi oprette en konfigurationsfil. Denne konfigurationsfil vil indeholde oplysninger om vores applikation, som Nginx vil bruge til den omvendte proxy.

Slet standardkonfigurationen, som Nginx oprettede, da vi senere vil erstatte den med vores egen.

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

Lav en ny fil i sites-availablemappen. Hvad angår navngivning, kan vi sitefor nemheds skyld holde os til ganske enkelt.

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

Indsæt følgende i filen, og gem.

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;
    }
}

I denne fil fortæller vi Nginx at lytte på port 80. Vi indstiller også proxy-passthrough til localhostadressen og porten 3000, som er den samme port som vores Hapi-applikation.

Nu kan du navigere tilbage til din applikationsmappe og starte siden. Når siden er startet, skal du blot navigere til http://yourdomain.comeller http://yourip, og du vil se teksten " Hello World".

Installer PM2

PM2 kan findes i NPM-lageret, og du kan installere det globalt for at være tilgængeligt hvor som helst, som sådan.

sudo npm install pm2 -g

Den -gflaget i slutningen indikerer, at vi ønsker at installere modulet til globale moduler mappe, som vil give os mulighed for at bruge det uden for vores projekt mappe. Dette bruges for at vores projekt kan opføre sig som en normal systemapplikation.

Starter vores app med PM2

Når du har installeret PM2, skal du navigere tilbage til dit projektbibliotek. Syntaksen for at starte vores applikation vil være lidt anderledes nu. Sådan vil vi gøre det med PM2.

pm2 start index.js --name site

Vi bruger PM2 startfunktionen, som grundlæggende opretter en profil til vores applikation, under navnet site. Efter at have kørt denne kommando, starter dit websted, men du vil bemærke, at logfilerne ikke vises. Det er fordi den måde, vi ser logfiler på nu, er anderledes.

pm2 logs site

Du kan endda angive, hvor mange linjer med logfiler du vil se, med --linesargumentet.

Konklusion

Du har med succes opsat en Hapi.js-webserver, omvendt proxy med Nginx og lært, hvordan du bedre kan administrere den med PM2. Med denne viden kan du udvide denne tutorial yderligere og lave en meget avanceret Hapi.js-applikation. For at lære mere om mulighederne ved Hapi, besøg deres officielle dokumentation . Hvis du gerne vil lære mere om mulighederne ved PM2, se deres hurtigstartguide .

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere