Sukurkite Hapi.js žiniatinklio programą naudodami Node.js Ubuntu 16.04

Hapi.js yra turtinga, patikima ir galinga Node.js sistema, skirta kurti žiniatinklio programas Node.js ekosistemoje. Jo paprastas dizainas leidžia lengvai pradėti. „Hapi“ savo esme naudoja daugybę naujausių „JavaScript ES6“ funkcijų, tokių kaip ES6 pažadai. Tiems iš jūsų, kurie anksčiau naudojote „Express“, „Hapi“ leidžia išbandyti ką nors naujo ir naudotis visomis naujausiomis „JavaScript“ funkcijomis.

Šioje mokymo programoje mūsų tikslas bus sukurti pagrindinį Hapi.js tinklalapį, kuris yra priglobtas iš mūsų Vultr VPS, Ubuntu 16.04 LTS. Tiems, kurie turi savo svetainės domeną, naudosime atvirkštinį tarpinį serverį, kad susietume savo domeną su mūsų svetaine. Galiausiai išmoksime tai valdyti su procesų vadovu. Dabar, kai to nepadarėme, pradėkime.

Node.js diegimas

Turėsime įdiegti Node.js. Norėdami tai padaryti Ubuntu 16.04 LTS, vadovaukitės šiomis instrukcijomis.

Saugyklos pridėjimas

Turėsime pridėti NodeSource APT saugyklą, kurioje yra naujausias LTS leidimas Node.js.

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

Atsisiunčiame scenarijų, kurį naudosime norėdami įtraukti saugyklą į šaltinių sąrašą, taip pat diegiame Node.js iš NodeSource saugyklos.

„Build Tools“ diegimas

Be paties Node.js įdiegimo, taip pat turėsime įdiegti kai kuriuos būtinus kūrimo įrankius, kurie padės sukurti bet kokius modulius, kuriuos mums gali prireikti įdiegti.

sudo apt-get install -y build-essential

Tai tiesiog atsisiunčia ir įdiegia kūrimo įrankius iš saugyklos.

Programų katalogo nustatymas

Gera praktika yra priskirti aplanką, kurį naudosime savo programai, kuriame bus visi mūsų programos duomenys, pvz., konfigūracijos failai ir paleisties scenarijai. Sukurkite aplanką ir pavadinkite jį taip, kaip norite. Dėl šios pamokos manysiu, kad pavadinote ją site.

mkdir site

Sukūrę aplanką, dabar galime jį pakeisti. Įsitikinę, kad esate ką tik sukurtame kataloge, paleiskite NPM paketo vedlį.

npm init

Ji paprašys jūsų įvesti keletą skirtingų dalykų, pvz., programos pavadinimą, pradžios failą, licenciją ir pan. Daugumą laukų galite palikti numatytuosius, išskyrus aiškesnius laukus, pvz., programos pavadinimą. Galų gale tai atrodys taip:

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

Kai būsite patenkinti rezultatu, spustelėkite, ENTERkad išsaugotumėte failą.

Įdiegti Hapi.js

Dabar, kai jūsų katalogas buvo sėkmingai sukurtas, dabar galime pradėti diegti Hapi.js. Kaip minėta anksčiau, mes naudosime NPM norėdami atsisiųsti Hapi.js ir jo priklausomybes savo projektui. Projekto kataloge paleiskite šiuos veiksmus.

npm install hapi.js

Tai atsisiunčia Hapi.js iš NPM ir įdiegia jį mūsų projektų kataloge. Tuo pačiu metu mūsų patogumui taip pat atsisiunčiamos visos priklausomybės, kuriomis gali pasikliauti Hapi.js.

Nustatome mūsų pavyzdinę programą

Dabar laikas nustatyti mūsų bazinį Hapi.js programos failą. Jame bus visas mūsų programos kodas. Toliau galime išplėsti programos kodą ir pridėti daugiau dalykų, kaip mums atrodo tinkama.

Tada sukursime pradžios failą. Norėdami tiksliai nustatyti, kaip pavadinti failą, grįžkite į mainsavo package.jsonfailo skyrių . Kadangi naudojau numatytąją pavadinimų schemą, mūsų failas bus vadinamas index.js.

nano index.js

Įėję į nano teksto rengyklę, sukurkite pagrindinį programos kodą.

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

Pirmiausia importuojame Hapi modulį. Tada inicijuojame savo serverio konstruktorių, kuriame yra pagrindinis kompiuteris, kuriame norime paleisti serverį, ir prievadas, 3000skirtas šiai mokymo programai. Tada nustatome pagrindinį maršruto parinktuvą, kuris nurodo, kad kaskart apsilankius svetainėje, jis bus pasveikintas paprastu pranešimu. Be viso to, turime asinchronizavimo funkciją, kad paleistume serverį, kuris prisijungs prie konsolės, kurioje veikia mūsų serveris. Baigę išsaugokite ir uždarykite failą ( CTRL+ X)

Dabar, kai nustatytas pagrindinis failas, esame pasirengę paleisti programą.

node index.js

Jei Our server is running!konsolėje matote " ", vadinasi, serveris sėkmingai paleistas.

Įdiekite „Nginx“.

Kadangi „Nginx“ yra numatytosiose „Ubuntu“ saugyklose, diegimas yra nesudėtingas. Tiesiog atnaujinkite paketų sąrašus ir įdiekite.

sudo apt update
sudo apt install nginx -y 

Atnaujinus paketų sąrašus, „Nginx“ ir jo priklausomybės bus įdiegtos.

Sukonfigūruokite Nginx

Kad „Nginx“ pakeistų programos tarpinį serverį, turėsime sukurti konfigūracijos failą. Šiame konfigūracijos faile bus informacija apie mūsų programą, kurią Nginx naudos atvirkštiniam tarpiniam serveriui.

Ištrinkite numatytąją konfigūraciją, kurią sukūrė Nginx, nes vėliau ją pakeisime savo.

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

Sukurkite naują failą sites-availableaplanke. Kalbant apie įvardijimą site, dėl paprastumo galime laikytis paprasčiausio .

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

Į failą įklijuokite toliau pateiktą informaciją ir išsaugokite.

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

Šiame faile mes liepiame Nginx klausytis per prievadą 80. Taip pat nustatome tarpinio serverio perdavimą localhostadresu ir prievadu 3000, kuris yra tas pats prievadas, kaip ir mūsų „Hapi“ programa.

Dabar galite grįžti į programų katalogą ir paleisti svetainę. Kai svetainė pradės veikti, tiesiog eikite į http://yourdomain.comarba http://youripir pamatysite tekstą „ Hello World“.

Įdiekite PM2

PM2 galima rasti NPM saugykloje ir galite jį įdiegti visame pasaulyje, kad būtų galima pasiekti iš bet kurios vietos.

sudo npm install pm2 -g

-gVėliava pabaigoje rodo, kad mes norime įdiegti modulį į pasaulinę modulių katalogą, kuris leis mums jį naudoti ne mūsų projekto kataloge. Tai naudojama tam, kad mūsų projektas veiktų kaip įprasta sistemos programa.

Programos paleidimas naudojant PM2

Įdiegę PM2, grįžkite į savo projekto katalogą. Dabar mūsų programos paleidimo sintaksė šiek tiek skirsis. Štai kaip tai padarysime su PM2.

pm2 start index.js --name site

Mes naudojame PM2 paleidimo funkciją, kuri iš esmės sukuria mūsų programos profilį pavadinimu site. Paleidus šią komandą, jūsų svetainė bus paleista, tačiau pastebėsite, kad žurnalai nebus rodomi. Taip yra todėl, kad dabar žurnalų peržiūra skiriasi.

pm2 logs site

Jūs netgi galite nurodyti, kiek žurnalų eilučių norite matyti, naudodami --linesargumentą.

Išvada

Sėkmingai nustatėte Hapi.js žiniatinklio serverį, pakeitėte tarpinį serverį naudodami Nginx ir išmokote geriau jį valdyti naudodami PM2. Turėdami šias žinias, galite toliau išplėsti šią mokymo programą ir sukurti labai pažangią Hapi.js programą. Norėdami sužinoti daugiau apie Hapi galimybes, apsilankykite oficialiojedokumentacijoje . Jei norite sužinoti daugiau apie PM2 galimybes, žr. jų greitos pradžios vadovą .

Palikti komentarą

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį