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 .


Namestite Plesk na CentOS 7

Namestite Plesk na CentOS 7

Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov

Namestite Lets Encrypt SSL v aplikacijo WordPress z enim klikom

Namestite Lets Encrypt SSL v aplikacijo WordPress z enim klikom

Uvod Lets Encrypt je storitev overitelja potrdil, ki ponuja brezplačna potrdila TLS/SSL. Certbot poenostavlja postopek namestitve,

Ustvarjanje bloga Jekyll v Ubuntu 16.04

Ustvarjanje bloga Jekyll v Ubuntu 16.04

Uporaba drugega sistema? Jekyll je odlična alternativa WordPressu za bloganje ali deljenje vsebine. Ne zahteva nobenih baz podatkov in je zelo enostaven i

Kako nastaviti nenadzorovane nadgradnje na Debian 9 (raztegni)

Kako nastaviti nenadzorovane nadgradnje na Debian 9 (raztegni)

Uporaba drugega sistema? Če kupite strežnik Debian, morate vedno imeti najnovejše varnostne popravke in posodobitve, ne glede na to, ali spite ali ne

Kako namestiti in konfigurirati PHP 7.0 ali PHP 7.1 na Ubuntu 16.04

Kako namestiti in konfigurirati PHP 7.0 ali PHP 7.1 na Ubuntu 16.04

PHP in sorodni paketi so najpogosteje uporabljene komponente pri uvajanju spletnega strežnika. V tem članku se bomo naučili, kako nastaviti PHP 7.0 ali PHP 7.1 o

Kako namestiti Squid Proxy na CentOS

Kako namestiti Squid Proxy na CentOS

Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne

Kako namestiti Lighttpd (LLMP Stack) na CentOS 6

Kako namestiti Lighttpd (LLMP Stack) na CentOS 6

Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite

Tri brezplačne nadzorne plošče strežnika (hitra namestitev)

Tri brezplačne nadzorne plošče strežnika (hitra namestitev)

1. Virtualmin/Webmin Virtualmin je zmogljiva in prilagodljiva nadzorna plošča za spletno gostovanje za sisteme Linux in UNIX, ki temelji na dobro znani odprtokodni spletni bazi

Nastavitev aplikacije Yii na Ubuntu 14.04

Nastavitev aplikacije Yii na Ubuntu 14.04

Yii je okvir PHP, ki vam omogoča hitrejši in preprostejši razvoj aplikacij. Namestitev Yii na Ubuntu je enostavna, saj se boste naučili natančno

Uporaba zaslona v Ubuntu 14.04

Uporaba zaslona v Ubuntu 14.04

Screen je aplikacija, ki omogoča večkratno uporabo terminalskih sej v enem oknu. To vam omogoča simulacijo več terminalskih oken, kjer je ma

Nastavite svoj DNS strežnik na Debian/Ubuntu

Nastavite svoj DNS strežnik na Debian/Ubuntu

Ta vadnica pojasnjuje, kako nastaviti strežnik DNS z uporabo Bind9 v Debianu ali Ubuntuju. V celotnem članku ustrezno nadomestite your-domain-name.com. Ob th

Uporaba Logrotate za upravljanje dnevniških datotek

Uporaba Logrotate za upravljanje dnevniških datotek

Uvod Logrotate je pripomoček za Linux, ki poenostavlja upravljanje dnevniških datotek. Običajno se izvaja enkrat na dan prek opravila cron in upravlja bazo dnevnikov

Konfiguriranje statičnega omrežja in IPv6 na CentOS 7

Konfiguriranje statičnega omrežja in IPv6 na CentOS 7

VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti

Spreminjanje Icinga2 za uporabo modela Master/Client na CentOS 6 ali CentOS 7

Spreminjanje Icinga2 za uporabo modela Master/Client na CentOS 6 ali CentOS 7

Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik

Nastavite Red5 Media Server na Ubuntu 16.04

Nastavite Red5 Media Server na Ubuntu 16.04

Uporaba drugega sistema? Red5 je odprtokodni medijski strežnik, implementiran v Javi, ki vam omogoča zagon večuporabniških aplikacij Flash, kot je prenos v živo

Prevedite in namestite Nginx z modulom PageSpeed ​​na Debian 8

Prevedite in namestite Nginx z modulom PageSpeed ​​na Debian 8

V tem članku bomo videli, kako prevesti in namestiti Nginx mainline iz uradnih virov Nginxa z modulom PageSpeed, ki vam omogoča

Kako namestiti Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Kako namestiti Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko

Kako namestiti Apache Cassandra 3.11.x na CentOS 7

Kako namestiti Apache Cassandra 3.11.x na CentOS 7

Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko

Kako namestiti Vanilla Forum na Ubuntu 16.04

Kako namestiti Vanilla Forum na Ubuntu 16.04

Uporaba drugega sistema? Vanilla forum je odprtokodna forumska aplikacija, napisana v PHP. Je popolnoma prilagodljiv, enostaven za uporabo in podpira zunanjost

Kako namestiti Kanboard na Ubuntu 18.04 LTS

Kako namestiti Kanboard na Ubuntu 18.04 LTS

Uporaba drugega sistema? Uvod Kanboard je brezplačen in odprtokodni program za vodenje projektov, ki je zasnovan za olajšanje in vizualizacijo

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.

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.

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.

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č