A Node.js telepítése
Alkalmazáskönyvtár beállítása
A Hapi.js telepítése
Mintaalkalmazásunk beállítása
Telepítse az Nginx-et
Az Nginx beállítása
Telepítse a PM2-t
Alkalmazásunk indítása a PM2-vel
Következtetés
A Hapi.js egy gazdag, robusztus és hatékony Node.js keretrendszer, amelyet webalkalmazások készítésére terveztek a Node.js ökoszisztémában. Egyszerű kialakítása megkönnyíti az indulást. A Hapi a legfrissebb JavaScript ES6 funkciót használja alapjában, például az ES6 ígéreteit. Azok számára, akik korábban használták az Express-t, a Hapi lehetővé teszi, hogy kipróbáljon valami újat, és megtapasztalhassa a legújabb JavaScript-funkciókat.
Ebben az oktatóanyagban az a célunk, hogy létrehozzunk egy alapvető Hapi.js weboldalt, amelyet a Vultr VPS-ünk tárol az Ubuntu 16.04 LTS-en. Azok számára, akiknek van domainjük webhelyükhöz, fordított proxyt használunk a domain és a webhelyünk összekapcsolásához. Végül megtanuljuk, hogyan kezeljük ezt egy folyamatmenedzserrel. Most, hogy ezt már félretesszük, kezdjük el.
A Node.js telepítése
Telepítenünk kell a Node.js-t. Ubuntu 16.04 LTS esetén kövesse az alábbi utasításokat.
Az adattár hozzáadása
Hozzá kell adnunk a NodeSource APT-tárat, amely a Node.js legújabb LTS-kiadását tartalmazza.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Letöltünk egy szkriptet, amellyel a tárat a forráslistánkhoz adjuk, valamint telepítjük a Node.js fájlt a NodeSource tárolóból.
Építőeszközök telepítése
A Node.js telepítésén túl szükségünk lesz néhány szükséges összeállítási eszköz telepítésére is, amelyek segítséget nyújtanak az esetlegesen telepítendő modulok felépítésében.
sudo apt-get install -y build-essential
Ez egyszerűen letölti és telepíti az összeállítási eszközöket a tárolóból.
Alkalmazáskönyvtár beállítása
Jó gyakorlat, ha kijelölünk egy mappát, amelyet az alkalmazásunkhoz használunk, és amely tartalmazza az alkalmazásunk összes adatát, például konfigurációs fájlokat és indító szkripteket. Hozzon létre egy mappát, és nevezze el tetszés szerint. Az oktatóanyag kedvéért feltételezem, hogy te nevezted el site.
mkdir site
Ha elkészítette a mappát, most már át is alakíthatjuk. Győződjön meg arról, hogy az imént létrehozott könyvtárban van, és indítsa el az NPM-csomag varázslót.
npm init
Megkéri, hogy adjon meg néhány különböző dolgot, például az alkalmazás nevét, a kezdőfájlt, a licencet és így tovább. A legtöbb mezőt alapértelmezettként hagyhatja, kivéve a nyilvánvalóbb mezőket, például az alkalmazás nevét. A végén így fog kinézni:
{
"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"
}
Ha elégedett az eredménnyel, kattintson ENTERa fájl mentéséhez.
A Hapi.js telepítése
Most, hogy a könyvtár sikeresen elkészült, folytathatjuk a Hapi.js telepítését. Amint azt korábban említettük, az NPM-et használjuk a Hapi.js letöltéséhez, valamint annak függőségeit projektünkhöz. A projektkönyvtárban futtassa a következőt.
npm install hapi.js
Ez letölti a Hapi.js-t az NPM-ből, és telepíti a projektkönyvtárunkba. Ugyanebben a futásban a Hapi.js által támaszkodó függőségek is letöltődnek a mi kényelmünk érdekében.
Mintaalkalmazásunk beállítása
Most itt az ideje beállítani az alap Hapi.js alkalmazásfájlt. Ez tartalmazza majd az alkalmazáshoz tartozó összes kódunkat. Az úton tovább bővíthetjük az alkalmazáskódunkat, és tetszés szerint további dolgokat is hozzáadhatunk hozzá.
Ezután létrehozzuk a kezdőfájlunkat. A fájl elnevezésének pontos meghatározásához tekintse mainmeg a package.jsonfájl szakaszát . Mivel az alapértelmezett elnevezési sémát használtam, a fájlunk neve lesz index.js.
nano index.js
Miután belépett a nano szövegszerkesztőbe, hozza létre az alapalkalmazás kódját.
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();
Először importáljuk a Hapi modult. Ezután inicializáljuk a szerver konstruktorunkat, amely tartalmazza azt a gazdagépet, amelyen futtatni kívánjuk a szervert, valamint a portot, amely 3000ehhez az oktatóanyaghoz tartozik. Ezután beállítunk egy alap útválasztót, amely jelzi, hogy valahányszor valaki felkeresi az oldalt, egy egyszerű üzenet fogadja. Mindennek tetejébe van egy aszinkron funkciónk, amellyel elindíthatjuk a szerverünket, amely bejelentkezik arra a konzolra, amelyen a szerverünk fut. Ha végzett, mentse és zárja be a fájlt ( CTRL+ X)
Most, hogy a fő fájlunk be van állítva, készen állunk az alkalmazás elindítására.
node index.js
Ha a " Our server is running!" feliratot látja a konzolon, akkor a kiszolgáló sikeresen elindult.
Telepítse az Nginx-et
Mivel az Nginx elérhető az alapértelmezett Ubuntu-tárolókban, a telepítés egyszerű. Egyszerűen frissítse a csomaglistákat, és telepítse.
sudo apt update
sudo apt install nginx -y
A csomaglisták frissítése után az Nginx és függőségei telepítésre kerülnek.
Ahhoz, hogy az Nginx megfordítsa az alkalmazásunkat, létre kell hoznunk egy konfigurációs fájlt. Ez a konfigurációs fájl információkat tartalmaz az alkalmazásunkról, amelyet az Nginx a fordított proxyhoz fog használni.
Törölje az Nginx által létrehozott alapértelmezett konfigurációt, mivel később a sajátunkra cseréljük.
sudo rm /etc/nginx/sites-enabled/default
Hozzon létre egy új fájlt a sites-availablemappában. Ami az elnevezést illeti site, az egyszerűség kedvéért maradhatunk az egyszerűnél.
sudo nano /etc/nginx/sites-available/site
Illessze be a következőt a fájlba, és mentse.
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;
}
}
Ebben a fájlban azt mondjuk az Nginxnek, hogy figyeljen a porton 80. A proxy áthárítását is beállítjuk a localhostcímre és a portra 3000, amely megegyezik a Hapi alkalmazásunkkal.
Most visszatérhet az alkalmazáskönyvtárba, és elindíthatja a webhelyet. Miután a webhely elindult, egyszerűen navigáljon a http://yourdomain.comvagy elemre http://yourip, és látni fogja a " Hello World" szöveget .
Telepítse a PM2-t
A PM2 megtalálható az NPM repository-ban, és globálisan telepíthető, hogy bárhonnan elérhető legyen, például így.
sudo npm install pm2 -g
A -gvégén lévő zászló azt jelzi, hogy a modult a global modules mappába szeretnénk telepíteni, így a projektkönyvtárunkon kívül is használhatjuk. Ezt arra használjuk, hogy a projektünk úgy viselkedjen, mint egy normál rendszeralkalmazás.
Alkalmazásunk indítása a PM2-vel
A PM2 telepítése után lépjen vissza a projektkönyvtárba. Az alkalmazásunk indításának szintaxisa most kissé eltérő lesz. Így fogjuk csinálni a PM2-vel.
pm2 start index.js --name site
A PM2 start funkciót használjuk, amely alapvetően profilt hoz létre az alkalmazásunkhoz, néven site. A parancs futtatása után a webhely elindul, de észre fogja venni, hogy a naplók nem jelennek meg. Ennek az az oka, hogy a naplók jelenlegi megtekintésének módja más.
pm2 logs site
Az --linesargumentummal még azt is megadhatja, hogy hány naplósort szeretne látni .
Következtetés
Sikeresen beállított egy Hapi.js webszervert, fordított proxyt az Nginx-szel, és megtanulta, hogyan kezelheti jobban a PM2-vel. Ezzel a tudással tovább bővítheti ezt az oktatóanyagot, és nagyon fejlett Hapi.js alkalmazást készíthet. Ha többet szeretne megtudni a Hapi lehetőségeiről, keresse fel hivatalos dokumentációját . Ha többet szeretne megtudni a PM2 lehetőségeiről, tekintse meg gyors útmutatójukat .