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ą .


Įdiekite „Plesk“ „CentOS 7“.

Įdiekite „Plesk“ „CentOS 7“.

Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Įvadas Cacti yra atvirojo kodo stebėjimo ir grafikų sudarymo įrankis, visiškai pagrįstas RRD duomenimis. Naudodami „Cacti“ galite stebėti beveik bet kokio tipo įrenginius

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įvadas „Lets Encrypt“ yra sertifikatų išdavimo tarnyba, siūlanti nemokamus TLS/SSL sertifikatus. Diegimo procesą supaprastina Certbot,

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Naudojate kitą sistemą? Kas yra Tekkit Classic? „Tekkit Classic“ yra visų žinomo ir mėgstamo žaidimo modifikacijų paketas; Minecraft. Jame yra keletas ver

„Debian Wheezy“ nustatykite „iRedMail“.

„Debian Wheezy“ nustatykite „iRedMail“.

Naudojate kitą sistemą? Ši pamoka parodys, kaip įdiegti grupinę programinę įrangą iRedMail naujai įdiegus Debian Wheezy. Turėtumėte naudoti tarnavimą

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Naudojate kitą sistemą? „Jekyll“ yra puiki „WordPress“ alternatyva dienoraščių rašymui ar turinio dalijimuisi. Tam nereikia jokių duomenų bazių ir tai labai paprasta

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Squid yra populiari nemokama „Linux“ programa, leidžianti sukurti persiuntimo žiniatinklio tarpinį serverį. Šiame vadove pamatysite, kaip įdiegti „Squid“ „CentOS“, kad paverstumėte jus

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Įvadas Lighttpd yra „Apache“ šakutė, skirta daug mažiau išteklių imti. Jis yra lengvas, todėl jo pavadinimas ir yra gana paprastas naudoti. Įdiegti

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

1. Virtualmin/Webmin Virtualmin yra galingas ir lankstus interneto prieglobos valdymo skydelis, skirtas Linux ir UNIX sistemoms, pagrįstas gerai žinoma atvirojo kodo žiniatinklio baze

Yii programos nustatymas Ubuntu 14.04

Yii programos nustatymas Ubuntu 14.04

Yii yra PHP sistema, leidžianti greičiau ir lengviau kurti programas. „Yii“ įdiegimas „Ubuntu“ yra nesudėtingas, nes sužinosite tiksliai

Ekrano naudojimas Ubuntu 14.04

Ekrano naudojimas Ubuntu 14.04

Ekranas yra programa, leidžianti kelis kartus naudoti terminalo seansus viename lange. Tai leidžia imituoti kelis terminalo langus, kur tai ma

Logrotate naudojimas žurnalo failams tvarkyti

Logrotate naudojimas žurnalo failams tvarkyti

Įvadas Logrotate yra „Linux“ programa, supaprastinanti žurnalo failų administravimą. Paprastai jis veikia kartą per dieną per cron darbą ir tvarko žurnalų bazę

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

VULTR neseniai atliko pakeitimus, ir dabar viskas turėtų veikti gerai, kai įjungta „NetworkManager“. Jei norite išjungti

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

Icinga2 yra galinga stebėjimo sistema, o kai naudojama pagrindinio kliento modelyje, ji gali pakeisti NRPE pagrįstų stebėjimo patikrų poreikį. Meistras-klientas

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Naudojate kitą sistemą? Mattermost yra atvirojo kodo, savarankiškai priglobta alternatyva Slack SAAS pranešimų paslaugai. Kitaip tariant, naudodami Mattermost, jūs apytiksliai

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i

Leidžia šifruoti Plesk

Leidžia šifruoti Plesk

„Plesk“ valdymo skydelyje yra labai graži „Lets Encrypt“ integracija. „Lets Encrypt“ yra vienas iš vienintelių SSL teikėjų, išduodančių visus sertifikatus

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.

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.

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.

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į