Izradite Hapi.js web aplikaciju koristeći Node.js na Ubuntu 16.04

Hapi.js je bogat, robustan i moćan okvir Node.js dizajniran za izgradnju web aplikacija u ekosustavu Node.js. Njegov jednostavan dizajn olakšava početak. Hapi u svojoj srži koristi mnoge najnovije značajke JavaScript ES6, kao što su obećanja ES6. Za one od vas koji su prije koristili Express, Hapi vam omogućuje da isprobate nešto novo i iskusite sve najnovije značajke JavaScripta.

U ovom vodiču, naš će cilj biti postaviti osnovnu Hapi.js web stranicu, koja se hostira s našeg Vultr VPS-a, na Ubuntu 16.04 LTS. Za one koji imaju domenu za svoju web stranicu, koristit ćemo obrnuti proxy za povezivanje naše domene s našom web-stranicom. Konačno, naučit ćemo kako se njime upravlja s voditeljem procesa. Sad kad smo to maknuli s puta, počnimo.

Instaliranje Node.js

Morat ćemo instalirati Node.js. Da biste to učinili na Ubuntu 16.04 LTS, slijedite ove upute.

Dodavanje spremišta

Morat ćemo dodati NodeSource APT repozitorij, koji sadrži najnovije LTS izdanje Node.js.

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

Mi preuzimamo skriptu koju ćemo koristiti za dodavanje spremišta na naš popis izvora, kao i za instalaciju Node.js iz NodeSource spremišta.

Instalacija alata za izgradnju

Uz instalaciju samog Node.js-a, također ćemo morati instalirati neke potrebne alate za izgradnju, koji će pomoći u izgradnji svih modula koje bismo možda trebali instalirati.

sudo apt-get install -y build-essential

Ovo jednostavno preuzima i instalira alate za izgradnju iz spremišta.

Postavljanje imenika aplikacija

Dobra je praksa odrediti mapu koju ćemo koristiti za našu aplikaciju, a koja će sadržavati sve podatke naše aplikacije, kao što su konfiguracijske datoteke i skripte za pokretanje. Stvorite mapu i nazovite je kako god želite. Zbog ovog tutoriala, pretpostavit ću da ste ga nazvali site.

mkdir site

Nakon što ste napravili mapu, sada se možemo promijeniti u nju. Provjerite jeste li u direktoriju koji ste upravo kreirali, pokrenite čarobnjak za NPM paket.

npm init

Od vas će se tražiti da unesete nekoliko različitih stvari, kao što su naziv vaše aplikacije, početna datoteka, licenca i tako dalje. Većina polja možete ostaviti zadanim, osim očitijih polja, kao što je naziv vaše aplikacije. Na kraju će to izgledati ovako:

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

Nakon što ste zadovoljni rezultatom, kliknite ENTERza spremanje datoteke.

Instaliranje Hapi.js

Sada kada je vaš direktorij uspješno konstruiran, sada možemo nastaviti s instalacijom Hapi.js. Kao što je već spomenuto, koristit ćemo NPM za preuzimanje Hapi.js-a, kao i njegovih ovisnosti, za naš projekt. U direktoriju projekta pokrenite sljedeće.

npm install hapi.js

Ovo preuzima Hapi.js s NPM-a i instalira ga u naš direktorij projekta. Istodobno, sve ovisnosti na koje se Hapi.js može osloniti također se preuzimaju radi naše pogodnosti.

Postavljanje našeg uzorka aplikacije

Sada je vrijeme za postavljanje naše osnovne aplikacije Hapi.js. To će sadržavati sav naš kod za aplikaciju. Dalje na putu, možemo proširiti naš programski kod i dodati mu više stvari, kako smatramo prikladnim.

Zatim ćemo kreirati našu početnu datoteku. Vratite se na mainodjeljak svoje package.jsondatoteke da odredite kako točno dati naziv datoteci. Budući da sam koristio zadanu shemu imenovanja, naša će se datoteka zvati index.js.

nano index.js

Nakon što ste unutar nano uređivača teksta, kreirajte svoj osnovni kod aplikacije, ovako.

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

Prvo uvozimo Hapi modul. Zatim inicijaliziramo konstruktor poslužitelja, koji sadrži host na kojem želimo pokrenuti poslužitelj, kao i port, koji je 3000za ovaj vodič. Zatim postavljamo osnovni usmjerivač, koji označava da će svaki put kad netko posjeti stranicu, biti dočekan jednostavnom porukom. Povrh svega, imamo async funkciju, za pokretanje našeg poslužitelja, koji će se prijaviti na konzolu koju naš poslužitelj radi. Kada završite, spremite i zatvorite datoteku ( CTRL+ X)

Sada kada je naša glavna datoteka postavljena, spremni smo za pokretanje naše aplikacije.

node index.js

Ako vidite " Our server is running!" na konzoli, poslužitelj se uspješno pokrenuo.

Instalirajte Nginx

Budući da je Nginx dostupan u zadanim Ubuntu repozitorijumima, instalacija je jednostavna. Jednostavno ažurirajte svoje popise paketa i instalirajte ih.

sudo apt update
sudo apt install nginx -y 

Nakon osvježavanja popisa paketa, Nginx i njegove ovisnosti bit će instalirani.

Konfigurirajte Nginx

Kako bi Nginx mogao obrnuti proxy našu aplikaciju, morat ćemo stvoriti konfiguracijsku datoteku. Ova konfiguracijska datoteka sadržavat će informacije o našoj aplikaciji, koju će Nginx koristiti za obrnuti proxy.

Izbrišite zadanu konfiguraciju koju je kreirao Nginx jer ćemo je kasnije zamijeniti svojom.

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

Napravite novu datoteku u sites-availablemapi. Što se tiče imenovanja, možemo se držati jednostavnog site, radi jednostavnosti.

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

U datoteku zalijepite sljedeće i spremite.

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

U ovoj datoteci govorimo Nginxu da sluša port 80. Također postavljamo proxy prolaz na localhostadresu i port 3000, koji je isti port kao i naša Hapi aplikacija.

Sada se možete vratiti do imenika aplikacije i pokrenuti stranicu. Kada se stranica pokrene, jednostavno idite na http://yourdomain.comili http://youripi vidjet ćete tekst " Hello World".

Instalirajte PM2

PM2 se može pronaći u NPM repozitoriju, a možete ga instalirati globalno da bi mu se mogao pristupiti s bilo kojeg mjesta, poput ovoga.

sudo npm install pm2 -g

Oznaka -gna kraju označava da želimo instalirati modul u mapu globalnih modula, što će nam omogućiti da ga koristimo izvan našeg projektnog direktorija. Ovo se koristi kako bi se naš projekt ponašao kao normalna sistemska aplikacija.

Pokretanje naše aplikacije s PM2

Nakon što instalirate PM2, vratite se na direktorij projekta. Sintaksa za pokretanje naše aplikacije sada će biti malo drugačija. Ovako ćemo to učiniti s PM2.

pm2 start index.js --name site

Koristimo PM2 start funkciju, koja u osnovi stvara profil za našu aplikaciju, pod imenom site. Nakon što pokrenete tu naredbu, vaša će se web stranica pokrenuti, ali ćete primijetiti da se zapisnici neće prikazati. To je zato što je način na koji sada gledamo zapisnike drugačiji.

pm2 logs site

Možete čak odrediti koliko redaka dnevnika želite vidjeti, s --linesargumentom.

Zaključak

Uspješno ste postavili Hapi.js web-poslužitelj, obrnuli ga pomoću Nginxa i naučili kako bolje upravljati njime s PM2. S ovim znanjem možete dodatno proširiti ovaj vodič i napraviti vrlo naprednu Hapi.js aplikaciju. Da biste saznali više o mogućnostima Hapija, posjetite njihovu službenu dokumentaciju . Ako želite saznati više o mogućnostima PM2, pogledajte njihov vodič za brzi početak .


Tri besplatne upravljačke ploče poslužitelja (brza instalacija)

Tri besplatne upravljačke ploče poslužitelja (brza instalacija)

1. Virtualmin/Webmin Virtualmin je moćna i fleksibilna upravljačka ploča za web hosting za Linux i UNIX sustave temeljena na poznatoj web bazi otvorenog koda

Postavljanje Yii aplikacije na Ubuntu 14.04

Postavljanje Yii aplikacije na Ubuntu 14.04

Yii je PHP okvir koji vam omogućuje brži i lakši razvoj aplikacija. Instalacija Yii-a na Ubuntu je jednostavna, kao što ćete naučiti točno

Upotreba Logrotate za upravljanje datotekama dnevnika

Upotreba Logrotate za upravljanje datotekama dnevnika

Uvod Logrotate je uslužni program za Linux koji pojednostavljuje administraciju datoteka dnevnika. Obično se pokreće jednom dnevno putem cron posla i upravlja bazom dnevnika

Kako instalirati Apache Cassandra 3.11.x na CentOS 7

Kako instalirati Apache Cassandra 3.11.x na CentOS 7

Korištenje drugog sustava? Apache Cassandra je besplatni i otvorenog koda NoSQL sustav upravljanja bazom podataka koji je osmišljen kako bi osigurao skalabilnost, visoku

Kako instalirati MODX Revolution na FreeBSD 11 FAMP VPS

Kako instalirati MODX Revolution na FreeBSD 11 FAMP VPS

Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, open source, Enterprise-grade Content Management System (CMS) napisan u PHP-u. To i

Kako instalirati i konfigurirati ArangoDB na CentOS 7

Kako instalirati i konfigurirati ArangoDB na CentOS 7

Korištenje drugog sustava? Uvod ArangoDB je NoSQL baza podataka otvorenog koda s fleksibilnim modelom podataka za dokumente, grafikone i ključ-vrijednosti. to je

Postavljanje poslužitelja Half Life 2 na CentOS 6

Postavljanje poslužitelja Half Life 2 na CentOS 6

Ovaj vodič će pokriti proces instaliranja poslužitelja za igre Half Life 2 na sustavu CentOS 6. Korak 1: Instaliranje preduvjeta Kako biste postavili ou

Postavljanje Counter Strike: Source na Debianu

Postavljanje Counter Strike: Source na Debianu

U ovom vodiču postavljat ćemo poslužitelj igre Counter Strike: Source na Debianu 7. Ove su naredbe testirane na Debianu 7, ali bi također trebale raditi o

Kako instalirati Unturned 2.2.5 na Debian 8

Kako instalirati Unturned 2.2.5 na Debian 8

U ovom vodiču naučit ćete kako postaviti Unturned 2.2.5 poslužitelj na Vultr VPS s Debianom 8. Napomena: Ovo je uređena verzija Unturneda koja ne

Kako instalirati Harbor na CentOS 7

Kako instalirati Harbor na CentOS 7

Harbor je poslužitelj registra otvorenog koda poslovne klase koji pohranjuje i distribuira Docker slike. Harbor proširuje Docker Distribution otvorenog koda b

Kako instalirati OpenMeetings na CentOS 7

Kako instalirati OpenMeetings na CentOS 7

Korištenje drugog sustava? Apache OpenMeetings je aplikacija za web konferencije otvorenog koda. Napisan je na Javi i podržava više poslužitelja baze podataka. ja

Kako instalirati Cuberite na CentOS 6 ili 7 poslužitelj

Kako instalirati Cuberite na CentOS 6 ili 7 poslužitelj

Uvod Što je kuberit? Cuberite je skalabilna implementacija Minecraft poslužitelja otvorenog koda koja je napisana na C++. Ima plugi koji je jednostavan za korištenje

Kako postaviti trajne aplikacije Node.js na Ubuntu 16.04

Kako postaviti trajne aplikacije Node.js na Ubuntu 16.04

Node.js aplikacije su popularne zbog svoje sposobnosti skaliranja. Pokretanje više istovremenih procesa na više poslužitelja daje manje kašnjenje i duže vrijeme rada

Instalacija Teamspeaka na CentOS 7

Instalacija Teamspeaka na CentOS 7

Teamspeak je VOIP poslužitelj koji se može koristiti za timove/više ljudi za komunikaciju. Relativno je lagan i siguran, budući da se ažuriranja objavljuju

Izrada Jekyll bloga na CentOS 7

Izrada Jekyll bloga na CentOS 7

Korištenje drugog sustava? Jekyll je dobra alternativa WordPressu. Ne zahtijeva nikakve baze podataka i radi s jezikom koji je mnogima poznat

Korištenje datoteke Hosts za testiranje web-mjesta

Korištenje datoteke Hosts za testiranje web-mjesta

Datoteka hosts posebna je datoteka na vašem računalu radne stanice koja će pohraniti informacije o IP-u i imenu. Ova se datoteka provjerava prije DNS-a, pa ako stavite a

Kako instalirati Koel na Fedora 28

Kako instalirati Koel na Fedora 28

Korištenje drugog sustava? Koel je jednostavna web-bazirana osobna aplikacija za strujanje zvuka napisana u Vueu na strani klijenta i Laravel na strani poslužitelja. Koe

Kako instalirati aplikaciju Mailtrain Newsletter na Debian 9

Kako instalirati aplikaciju Mailtrain Newsletter na Debian 9

Korištenje drugog sustava? Mailtrain je aplikacija za bilten otvorenog koda koja se samostalno hostira i izgrađena na Node.js i MySQL/MariaDB. Izvor Mailtrains je na GitHubu. ti

Instaliranje Akauntinga na Fedora 28

Instaliranje Akauntinga na Fedora 28

Korištenje drugog sustava? Akaunting je besplatan računovodstveni softver otvorenog koda i online računovodstveni softver dizajniran za male tvrtke i slobodnjake. Izgrađen je duhovito

Kako instalirati MODX Revolution na CentOS 7 LAMP VPS

Kako instalirati MODX Revolution na CentOS 7 LAMP VPS

Korištenje drugog sustava? MODX Revolution je brz, fleksibilan, skalabilan, besplatan i otvorenog koda, Enterprise-grade Content Management System (CMS) napisan i

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više