Creați o aplicație web Hapi.js folosind Node.js pe Ubuntu 16.04

Hapi.js este un cadru Node.js bogat, robust și puternic proiectat pentru construirea aplicațiilor web în ecosistemul Node.js. Designul său simplu face ușor să începeți. Hapi folosește multe dintre cele mai recente caracteristici JavaScript ES6, precum promisiunile ES6. Pentru cei dintre voi care ați folosit Express înainte, Hapi vă permite să încercați ceva nou și să experimentați toate cele mai recente funcții JavaScript.

În acest tutorial, obiectivul nostru va fi să creăm o pagină web de bază Hapi.js, care este găzduită de pe Vultr VPS-ul nostru, pe Ubuntu 16.04 LTS. Pentru cei care au un domeniu pentru site-ul lor, vom folosi un proxy invers pentru a conecta domeniul nostru la site-ul nostru web. În cele din urmă, vom învăța cum să-l gestionăm cu un manager de proces. Acum că am scos asta, să începem.

Instalarea Node.js

Va trebui să instalăm Node.js. Pentru a face acest lucru pe Ubuntu 16.04 LTS, urmați aceste instrucțiuni.

Adăugarea depozitului

Va trebui să adăugăm depozitul APT NodeSource, care conține cea mai recentă versiune LTS a Node.js.

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

Descărcăm un script pe care îl vom folosi pentru a adăuga repositorul în lista surselor noastre, precum și pentru a instala Node.js din depozitul NodeSource.

Instalarea instrumentelor de construire

Pe lângă instalarea în sine a Node.js, va trebui să instalăm și unele instrumente de construire necesare, care vor ajuta la construirea oricăror module pe care ar putea avea nevoie să le instalăm.

sudo apt-get install -y build-essential

Aceasta pur și simplu descarcă și instalează instrumentele de compilare din depozit.

Configurarea directorului aplicațiilor

Este o practică bună să desemnăm un folder pe care îl vom folosi pentru aplicația noastră, care va conține toate datele aplicației noastre, cum ar fi fișierele de configurare și scripturile de pornire. Creați un dosar, numindu-l orice doriți. De dragul acestui tutorial, presupun că l-ai numit site.

mkdir site

După ce ați făcut folderul, acum ne putem schimba. Asigurați-vă că vă aflați în directorul pe care tocmai l-ați creat, porniți asistentul pachet NPM.

npm init

Vă va cere să introduceți câteva lucruri diferite, cum ar fi numele aplicației, fișierul de pornire, licența și așa mai departe. Majoritatea câmpurilor pe care le puteți lăsa implicite, cu excepția câmpurilor mai evidente, cum ar fi numele aplicației dvs. În final, va arăta astfel:

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

După ce sunteți mulțumit de rezultat, faceți clic ENTERpentru a salva fișierul.

Instalarea Hapi.js

După ce directorul dvs. a fost construit cu succes, putem acum să procedăm la instalarea Hapi.js. După cum am menționat anterior, vom folosi NPM pentru a descărca Hapi.js, precum și dependențele sale, pentru proiectul nostru. În directorul de proiecte, executați următoarele.

npm install hapi.js

Aceasta descarcă Hapi.js de la NPM și o instalează în directorul nostru de proiect. În aceeași rulare, toate dependențele pe care se bazează Hapi.js sunt descărcate și pentru comoditatea noastră.

Configurarea aplicației noastre de probă

Acum este timpul să configurați fișierul nostru de aplicații Hapi.js de bază. Acesta va conține tot codul nostru pentru aplicație. Mai departe, putem extinde codul aplicației noastre și adăuga mai multe lucruri, după cum considerăm de cuviință.

În continuare, vom crea fișierul nostru de pornire. Consultați mainsecțiunea din package.jsonfișierul dvs. , pentru a determina exact cum se numește fișierul. Din moment ce am folosit schema de denumire implicită, fișierul nostru va fi apelat index.js.

nano index.js

După ce vă aflați în editorul de text nano, creați codul aplicației de bază, ca atare.

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

Mai întâi, importăm modulul Hapi. Apoi, inițializăm constructorul de server, care conține gazda pe care vrem să rulăm serverul, precum și portul, care este 3000pentru acest tutorial. În continuare, am configurat un router de bază, care indică faptul că, de fiecare dată când cineva vizitează site-ul, va fi primit cu un mesaj simplu. Pentru a finaliza totul, avem o funcție async, pentru a porni serverul nostru, care va fi conectat la consola pe care serverul nostru o rulează. După ce ați terminat, salvați și închideți fișierul ( CTRL+ X)

Acum că fișierul nostru principal este configurat, suntem pregătiți să începem aplicația.

node index.js

Dacă vedeți " Our server is running!" în consolă, atunci serverul a pornit cu succes.

Instalați Nginx

Deoarece Nginx este disponibil în depozitele implicite Ubuntu, instalarea este simplă. Pur și simplu actualizați listele de pachete și instalați-l.

sudo apt update
sudo apt install nginx -y 

După actualizarea listelor de pachete, Nginx și dependențele sale vor fi instalate.

Configurați Nginx

Pentru ca Nginx să inverseze proxy-ul aplicației noastre, va trebui să creăm un fișier de configurare. Acest fișier de configurare va conține informații despre aplicația noastră, pe care Nginx o va folosi pentru proxy-ul invers.

Ștergeți configurația implicită pe care a creat-o Nginx, deoarece o vom înlocui cu propria noastră mai târziu.

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

Creează un fișier nou în sites-availablefolder. În ceea ce privește denumirea, ne putem lipi pur și simplu site, pentru simplitate.

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

În fișier, lipiți următoarele, și salvați.

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

În acest fișier, îi spunem Nginx să asculte pe port 80. De asemenea, setăm passthrough proxy pe localhostadresa și portul 3000, care este același port ca aplicația noastră Hapi.

Acum puteți naviga înapoi în directorul aplicației dvs. și puteți porni site-ul. Odată ce site-ul a început, pur și simplu navigați către http://yourdomain.comsau http://yourip, și veți vedea textul " Hello World".

Instalați PM2

PM2 poate fi găsit în depozitul NPM și îl puteți instala la nivel global pentru a fi accesat de oriunde, ca atare.

sudo npm install pm2 -g

-gPavilion la sfârșitul indică faptul că dorim să instalați modulul în folderul module la nivel mondial, ceea ce ne va permite să - l folosească în afara directorul nostru proiect. Acest lucru este utilizat pentru ca proiectul nostru să se comporte ca o aplicație de sistem normală.

Pornirea aplicației noastre cu PM2

După ce ați instalat PM2, navigați înapoi în directorul de proiect. Sintaxa pentru a începe aplicația noastră va fi ușor diferită acum. Așa o vom face cu PM2.

pm2 start index.js --name site

Folosim funcția de pornire PM2, care practic creează un profil pentru aplicația noastră, sub numele site. După executarea acestei comenzi, site-ul dvs. web va începe, dar veți observa că jurnalele nu vor apărea. Asta pentru că modul în care vedem jurnalele acum este diferit.

pm2 logs site

Puteți chiar să specificați câte linii de jurnaluri doriți să vedeți, cu --linesargumentul.

Concluzie

Ați configurat cu succes un server web Hapi.js, l-ați împiedicat invers cu Nginx și ați învățat cum să-l gestionați mai bine cu PM2. Cu aceste cunoștințe, vă puteți extinde în continuare pe acest tutorial și puteți face o aplicație Hapi.js foarte avansată. Pentru a afla mai multe despre posibilitățile Hapi, vizitați documentația lor oficială . Dacă doriți să aflați mai multe despre posibilitățile PM2, consultați ghidul lor de pornire rapidă .

Lasă un comentariu

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe