Ustvarite spletno aplikacijo Hapi.js z uporabo Node.js v Ubuntu 16.04

Hapi.js je bogat, robusten in zmogljiv okvir Node.js, zasnovan za gradnjo spletnih aplikacij v ekosistemu Node.js. Njegova preprosta zasnova olajša začetek. Hapi v svojem jedru uporablja številne najnovejše funkcije JavaScript ES6, kot so obljube ES6. Tistim, ki ste že uporabljali Express, vam Hapi omogoča, da preizkusite nekaj novega in izkusite vse najnovejše funkcije JavaScript.

V tej vadnici bo naš cilj vzpostaviti osnovno spletno stran Hapi.js, ki gostuje iz našega Vultr VPS, na Ubuntu 16.04 LTS. Za tiste, ki imajo domeno za svoje spletno mesto, bomo uporabili povratni proxy za povezavo naše domene z našim spletnim mestom. Končno se bomo naučili, kako ga upravljati z vodjo procesov. Zdaj, ko smo to odpravili, začnimo.

Namestitev Node.js

Namestiti bomo morali Node.js. Če želite to narediti v Ubuntu 16.04 LTS, sledite tem navodilom.

Dodajanje skladišča

Dodati bomo morali repozitorij NodeSource APT, ki vsebuje najnovejšo LTS izdajo Node.js.

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

Prenašamo skript, ki ga bomo uporabili za dodajanje skladišča na naš seznam virov, kot tudi namestitev Node.js iz repozitorija NodeSource.

Namestitev orodij za gradnjo

Poleg namestitve samega Node.js bomo morali namestiti tudi nekaj potrebnih orodij za gradnjo, ki bodo pomagala pri izdelavi vseh modulov, ki jih bomo morda morali namestiti.

sudo apt-get install -y build-essential

To preprosto prenese in namesti orodja za gradnjo iz skladišča.

Nastavitev imenika aplikacij

Dobra praksa je, da določimo mapo, ki jo bomo uporabljali za našo aplikacijo, ki bo vsebovala vse podatke naše aplikacije, kot so konfiguracijske datoteke in zagonski skripti. Ustvarite mapo in jo poimenujte, kot želite. Zaradi te vadnice predvidevam, da ste jo poimenovali site.

mkdir site

Ko ustvarite mapo, se lahko vanjo spremenimo. Prepričajte se, da ste v imeniku, ki ste ga pravkar ustvarili, zaženite čarovnika za pakete NPM.

npm init

Prosil vas bo, da vnesete nekaj različnih stvari, kot so ime vaše aplikacije, začetna datoteka, licenca in tako naprej. Večino polj lahko pustite privzeto, razen bolj očitnih polj, kot je ime vaše aplikacije. Na koncu bo videti takole:

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

Ko ste zadovoljni z rezultatom, kliknite, ENTERda shranite datoteko.

Namestitev Hapi.js

Zdaj, ko je bil vaš imenik uspešno sestavljen, lahko nadaljujemo z namestitvijo Hapi.js. Kot smo že omenili, bomo uporabljali NPM za prenos Hapi.js in njegovih odvisnosti za naš projekt. V imeniku projekta zaženite naslednje.

npm install hapi.js

To prenese Hapi.js iz NPM in ga namesti v naš imenik projekta. V istem zagonu se za naše udobje prenesejo tudi vse odvisnosti, na katere se lahko zanese Hapi.js.

Nastavitev naše vzorčne aplikacije

Zdaj je čas, da nastavimo našo osnovno aplikacijsko datoteko Hapi.js. To bo vsebovalo vso našo kodo za aplikacijo. Nadalje lahko razširimo našo aplikacijsko kodo in ji dodamo več stvari, kot se nam zdi primerno.

Nato bomo ustvarili našo začetno datoteko. Če želite natančno določiti, kako poimenovati datoteko, se vrnite na mainrazdelek package.jsondatoteke. Ker sem uporabil privzeto shemo poimenovanja, se bo naša datoteka imenovala index.js.

nano index.js

Ko ste v urejevalniku besedil nano, ustvarite svojo osnovno kodo aplikacije, tako.

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

Najprej uvozimo modul Hapi. Nato inicializiramo konstruktor strežnika, ki vsebuje gostitelja, na katerem želimo zagnati strežnik, in vrata, ki so 3000namenjena tej vadnici. Nato nastavimo osnovni usmerjevalnik, ki nakazuje, da bo vsakič, ko nekdo obišče spletno mesto, pozdravljen s preprostim sporočilom. Za povrh vsega imamo async funkcijo za zagon našega strežnika, ki se bo prijavil v konzolo, ki jo izvaja naš strežnik. Ko končate, shranite in zaprite datoteko ( CTRL+ X)

Zdaj, ko je naša glavna datoteka nastavljena, smo pripravljeni zagnati našo aplikacijo.

node index.js

Če Our server is running!v konzoli vidite » «, je strežnik uspešno zagnan.

Namestite Nginx

Ker je Nginx na voljo v privzetih repozitorijih Ubuntu, je namestitev enostavna. Preprosto posodobite sezname paketov in jih namestite.

sudo apt update
sudo apt install nginx -y 

Po osvežitvi seznamov paketov bo nameščen Nginx in njegove odvisnosti.

Konfigurirajte Nginx

Da bo Nginx obrnil proxy naše aplikacije, bomo morali ustvariti konfiguracijsko datoteko. Ta konfiguracijska datoteka bo vsebovala informacije o naši aplikaciji, ki jih bo Nginx uporabil za povratni proxy.

Izbrišite privzeto konfiguracijo, ki jo je ustvaril Nginx, saj jo bomo kasneje zamenjali s svojo.

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

Ustvarite novo datoteko v sites-availablemapi. Kar zadeva poimenovanje, se lahko zaradi preprostosti držimo sitepreprosto.

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

V datoteko prilepite naslednje in shranite.

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

V tej datoteki sporočamo Nginxu, naj posluša vrata 80. Nastavimo tudi prehod proxyja na localhostnaslov in vrata 3000, ki so ista vrata kot naša aplikacija Hapi.

Zdaj se lahko pomaknete nazaj v imenik aplikacij in zaženete spletno mesto. Ko se spletno mesto zažene, se preprosto pomaknite do http://yourdomain.comali http://youripin videli boste besedilo " Hello World".

Namestite PM2

PM2 je mogoče najti v skladišču NPM in ga lahko namestite globalno, da je dostopen od koder koli, na primer.

sudo npm install pm2 -g

-gZastava na koncu pomeni, da želimo namestiti modul v mapo globalne modulov, ki nam omogočajo, da ga uporabljate zunaj našega projekta imenik. To se uporablja, da bi se naš projekt obnašal kot običajna sistemska aplikacija.

Zagon naše aplikacije s PM2

Ko namestite PM2, se pomaknite nazaj v imenik projekta. Sintaksa za zagon naše aplikacije bo zdaj nekoliko drugačna. Tako bomo to naredili s PM2.

pm2 start index.js --name site

Uporabljamo funkcijo zagona PM2, ki v bistvu ustvari profil za našo aplikacijo pod imenom site. Po zagonu tega ukaza se bo vaše spletno mesto zagnalo, vendar boste opazili, da se dnevniki ne bodo prikazali. To je zato, ker je način, kako zdaj gledamo dnevnike, drugačen.

pm2 logs site

Z --linesargumentom lahko celo določite, koliko vrstic dnevnikov želite videti .

Zaključek

Uspešno ste nastavili spletni strežnik Hapi.js, ga preusmerili v povratni proxy z Nginxom in se naučili, kako ga bolje upravljati s PM2. S tem znanjem lahko dodatno razširite to vadnico in naredite zelo napredno aplikacijo Hapi.js. Če želite izvedeti več o možnostih Hapija, obiščite njihovo uradno dokumentacijo . Če želite izvedeti več o možnostih PM2, si oglejte njihov vodnik za hitri začetek .

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več