Instaliranje Node.js
Postavljanje imenika aplikacija
Instaliranje Hapi.js
Postavljanje našeg uzorka aplikacije
Instalirajte Nginx
Konfigurirajte Nginx
Instalirajte PM2
Pokretanje naše aplikacije s PM2
Zaključak
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.
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 .