Izveidojiet Hapi.js tīmekļa lietojumprogrammu, izmantojot Node.js Ubuntu 16.04

Hapi.js ir bagātīgs, stabils un jaudīgs Node.js ietvars, kas paredzēts tīmekļa lietojumprogrammu izveidei Node.js ekosistēmā. Tā vienkāršais dizains ļauj viegli sākt darbu. Hapi savā pamatā izmanto daudzas jaunākās JavaScript ES6 funkcijas, piemēram, ES6 solījumus. Tiem no jums, kas iepriekš ir izmantojuši Express, Hapi ļauj izmēģināt kaut ko jaunu un izbaudīt visas jaunākās JavaScript funkcijas.

Šajā apmācībā mūsu mērķis būs Ubuntu 16.04 LTS izveidot pamata Hapi.js tīmekļa lapu, kas tiek mitināta no mūsu Vultr VPS. Tiem, kuru vietnei ir domēns, mēs izmantosim apgriezto starpniekserveri, lai saistītu mūsu domēnu ar mūsu vietni. Visbeidzot, mēs iemācīsimies to pārvaldīt ar procesa vadītāju. Tagad, kad tas ir novērsts, sāksim.

Node.js instalēšana

Mums būs jāinstalē Node.js. Lai to izdarītu Ubuntu 16.04 LTS, izpildiet šos norādījumus.

Repozitorija pievienošana

Mums būs jāpievieno NodeSource APT repozitorijs, kurā ir jaunākais Node.js LTS laidiens.

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

Mēs lejupielādējam skriptu, ko izmantosim, lai pievienotu repozitoriju mūsu avotu sarakstam, kā arī instalējam Node.js no NodeSource repozitorija.

Veidošanas rīku instalēšana

Papildus pašas Node.js instalēšanai mums būs jāinstalē arī daži nepieciešamie veidošanas rīki, kas palīdzēs izveidot visus moduļus, kas mums varētu būt jāinstalē.

sudo apt-get install -y build-essential

Tas vienkārši lejupielādē un instalē veidošanas rīkus no krātuves.

Lietojumprogrammu direktorija iestatīšana

Laba prakse ir norādīt mapi, ko izmantosim savai lietojumprogrammai un kurā būs visi mūsu lietojumprogrammas dati, piemēram, konfigurācijas faili un startēšanas skripti. Izveidojiet mapi, piešķirot tai vēlamo nosaukumu. Šīs apmācības labad es pieņemu, ka jūs to nosaucāt site.

mkdir site

Kad esat izveidojis mapi, tagad mēs varam to mainīt. Pārliecinoties, ka atrodaties tikko izveidotajā direktorijā, palaidiet NPM pakotnes vedni.

npm init

Tas lūgs ievadīt dažas dažādas lietas, piemēram, lietojumprogrammas nosaukumu, sākuma failu, licenci un tā tālāk. Lielāko daļu lauku varat atstāt noklusētos, izņemot acīmredzamākos laukus, piemēram, lietojumprogrammas nosaukumu. Galu galā tas izskatīsies šādi:

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

Kad esat apmierināts ar rezultātu, noklikšķiniet, ENTERlai saglabātu failu.

Hapi.js instalēšana

Tagad, kad jūsu direktorijs ir veiksmīgi izveidots, mēs varam turpināt instalēt Hapi.js. Kā minēts iepriekš, mēs izmantosim NPM, lai mūsu projektam lejupielādētu Hapi.js, kā arī tā atkarības. Projekta direktorijā izpildiet tālāk norādīto.

npm install hapi.js

Tas lejupielādē Hapi.js no NPM un instalē to mūsu projektu direktorijā. Tajā pašā laikā mūsu ērtībām tiek lejupielādētas arī visas atkarības, uz kurām var paļauties Hapi.js.

Mūsu lietojumprogrammas parauga iestatīšana

Tagad ir pienācis laiks iestatīt mūsu pamata lietojumprogrammas failu Hapi.js. Tajā būs viss mūsu lietojumprogrammas kods. Tālāk mēs varam paplašināt mūsu lietojumprogrammas kodu un pievienot tam citas lietas, kā uzskatām par piemērotu.

Tālāk mēs izveidosim sākuma failu. Lai precīzi noteiktu, kā failam piešķirt nosaukumu, skatiet mainsava package.jsonfaila sadaļu . Tā kā es izmantoju noklusējuma nosaukumu shēmu, mūsu fails tiks saukts par index.js.

nano index.js

Kad esat nano teksta redaktorā, izveidojiet savu pamata lietojumprogrammas kodu, piemēram.

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

Pirmkārt, mēs importējam Hapi moduli. Pēc tam mēs inicializējam mūsu servera konstruktoru, kurā ir resursdators, kurā vēlamies darbināt serveri, kā arī ports, kas 3000paredzēts šai apmācībai. Pēc tam mēs iestatām pamata maršrutētāju, kas norāda, ka ikreiz, kad kāds apmeklēs vietni, viņš tiks sveicināts ar vienkāršu ziņojumu. Turklāt mums ir asinhronizācijas funkcija, lai palaistu mūsu serveri, kas pieteiksies konsolē, kurā darbojas mūsu serveris. Kad esat pabeidzis, saglabājiet un aizveriet failu ( CTRL+ X)

Tagad, kad mūsu galvenais fails ir iestatīts, mēs esam gatavi palaist mūsu lietojumprogrammu.

node index.js

Ja Our server is running!konsolē redzat " ", serveris tika veiksmīgi startēts.

Instalējiet Nginx

Tā kā Nginx ir pieejams noklusējuma Ubuntu krātuvēs, instalēšana ir vienkārša. Vienkārši atjauniniet pakotņu sarakstus un instalējiet to.

sudo apt update
sudo apt install nginx -y 

Pēc pakotņu sarakstu atsvaidzināšanas tiks instalēts Nginx un tā atkarības.

Konfigurējiet Nginx

Lai Nginx varētu mainīt mūsu lietojumprogrammas starpniekserveri, mums ir jāizveido konfigurācijas fails. Šajā konfigurācijas failā būs informācija par mūsu lietojumprogrammu, ko Nginx izmantos reversajam starpniekserveram.

Izdzēsiet noklusējuma konfigurāciju, ko izveidoja Nginx, jo mēs to vēlāk aizstāsim ar savu.

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

Izveidojiet jaunu failu sites-availablemapē. Runājot par nosaukumu piešķiršanu, vienkāršības sitelabad mēs varam pieturēties pie vienkārša .

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

Failā ielīmējiet tālāk norādīto un saglabājiet.

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

Šajā failā mēs piedāvājam Nginx klausīties portā 80. Mēs arī iestatām starpniekservera pāreju uz localhostadresi un portu 3000, kas ir tas pats ports, kas mūsu Hapi lietojumprogrammai.

Tagad varat doties atpakaļ uz savu lietojumprogrammu direktoriju un sākt vietni. Kad vietne ir sākusies, vienkārši dodieties uz http://yourdomain.comvai http://yourip, un jūs redzēsit tekstu " Hello World".

Instalējiet PM2

PM2 var atrast NPM repozitorijā, un jūs varat to instalēt globāli, lai tas būtu pieejams no jebkuras vietas, piemēram.

sudo npm install pm2 -g

-gKarogs beigās, liecina, ka mēs vēlamies, lai instalētu moduli uz pasaules moduļu mapi, kas ļaus mums to izmantot ārpus mūsu projekta direktorijā. Tas tiek izmantots, lai mūsu projekts darbotos kā parasta sistēmas lietojumprogramma.

Mūsu lietotnes palaišana ar PM2

Kad esat instalējis PM2, dodieties atpakaļ uz sava projekta direktoriju. Mūsu lietojumprogrammas palaišanas sintakse tagad būs nedaudz atšķirīga. Šādi mēs to darīsim ar PM2.

pm2 start index.js --name site

Mēs izmantojam PM2 starta funkciju, kas pamatā izveido mūsu lietojumprogrammas profilu ar nosaukumu site. Pēc šīs komandas palaišanas jūsu vietne tiks startēta, taču pamanīsit, ka žurnāli netiks rādīti. Tas ir tāpēc, ka veids, kā mēs tagad skatām žurnālus, atšķiras.

pm2 logs site

Varat pat norādīt, cik žurnālu rindu vēlaties redzēt, izmantojot --linesargumentu.

Secinājums

Jūs esat veiksmīgi iestatījis Hapi.js tīmekļa serveri, atgriezis to starpniekserveri ar Nginx un uzzinājis, kā to labāk pārvaldīt, izmantojot PM2. Izmantojot šīs zināšanas, varat turpināt paplašināt šo pamācību un izveidot ļoti progresīvu lietojumprogrammu Hapi.js. Lai uzzinātu vairāk par Hapi iespējām, apmeklējiet viņu oficiālo dokumentāciju . Ja vēlaties uzzināt vairāk par PM2 iespējām, skatiet to īso lietošanas pamācību .


Instalējiet Plesk operētājsistēmā CentOS 7

Instalējiet Plesk operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Plesk ir patentēts tīmekļa mitinātāja vadības panelis, kas ļauj lietotājiem administrēt savas personīgās un/vai klientu vietnes, datu bāzes

Iestatiet Cacti vietnē Debian Jessie

Iestatiet Cacti vietnē Debian Jessie

Ievads Cacti ir atvērtā koda uzraudzības un grafiku veidošanas rīks, kas pilnībā ir balstīts uz RRD datiem. Izmantojot Cacti, varat pārraudzīt gandrīz jebkura veida ierīces

Instalējiet Lets Encrypt SSL WordPress lietotnē ar vienu klikšķi

Instalējiet Lets Encrypt SSL WordPress lietotnē ar vienu klikšķi

Ievads Lets Encrypt ir sertifikācijas iestādes pakalpojums, kas piedāvā bezmaksas TLS/SSL sertifikātus. Instalēšanas procesu vienkāršo Certbot,

Kā iestatīt Tekkit Classic serveri Ubuntu 16.10

Kā iestatīt Tekkit Classic serveri Ubuntu 16.10

Vai izmantojat citu sistēmu? Kas ir Tekkit Classic? Tekkit Classic ir modifikācija spēlei, kuru visi zina un mīl; Minecraft. Tajā ir daži no ver

Iestatiet iRedMail vietnē Debian Wheezy

Iestatiet iRedMail vietnē Debian Wheezy

Vai izmantojat citu sistēmu? Šī apmācība parādīs, kā instalēt grupas programmu iRedMail jaunā Debian Wheezy instalācijā. Jums vajadzētu izmantot servi

Jekyll emuāra izveide Ubuntu 16.04

Jekyll emuāra izveide Ubuntu 16.04

Vai izmantojat citu sistēmu? Jekyll ir lieliska alternatīva WordPress emuāru rakstīšanai vai satura kopīgošanai. Tam nav nepieciešamas nekādas datu bāzes, un tas ir ļoti vienkārši

Kā iestatīt neuzraudzītus jauninājumus Debian 9 (Stretch)

Kā iestatīt neuzraudzītus jauninājumus Debian 9 (Stretch)

Vai izmantojat citu sistēmu? Ja iegādājaties Debian serveri, jums vienmēr ir jābūt jaunākajiem drošības ielāpiem un atjauninājumiem neatkarīgi no tā, vai jūs guļat vai ne.

Kā instalēt un konfigurēt PHP 7.0 vai PHP 7.1 Ubuntu 16.04

Kā instalēt un konfigurēt PHP 7.0 vai PHP 7.1 Ubuntu 16.04

PHP un saistītās pakotnes ir visbiežāk izmantotie komponenti, izvietojot tīmekļa serveri. Šajā rakstā mēs uzzināsim, kā iestatīt PHP 7.0 vai PHP 7.1 o

Kā instalēt Squid starpniekserveri CentOS

Kā instalēt Squid starpniekserveri CentOS

Squid ir populāra bezmaksas Linux programma, kas ļauj izveidot pāradresācijas tīmekļa starpniekserveri. Šajā rokasgrāmatā jūs redzēsit, kā instalēt Squid uz CentOS, lai jūs pārvērstu

Kā instalēt Lighttpd (LLMP Stack) operētājsistēmā CentOS 6

Kā instalēt Lighttpd (LLMP Stack) operētājsistēmā CentOS 6

Ievads Lighttpd ir Apache dakša, kuras mērķis ir daudz mazāk resursietilpīgs. Tas ir viegls, tāpēc arī tā nosaukums ir diezgan vienkārši lietojams. Instalēšana

Trīs bezmaksas servera vadības paneļi (ātrā instalēšana)

Trīs bezmaksas servera vadības paneļi (ātrā instalēšana)

1. Virtualmin/Webmin Virtualmin ir jaudīgs un elastīgs tīmekļa mitināšanas vadības panelis Linux un UNIX sistēmām, pamatojoties uz labi zināmo atvērtā pirmkoda tīmekļa bāzi

Yii lietojumprogrammas iestatīšana Ubuntu 14.04

Yii lietojumprogrammas iestatīšana Ubuntu 14.04

Yii ir PHP ietvars, kas ļauj ātrāk un vienkāršāk izstrādāt lietojumprogrammas. Yii instalēšana Ubuntu ir vienkārša, jo jūs to uzzināsit precīzi

Ekrāna izmantošana Ubuntu 14.04

Ekrāna izmantošana Ubuntu 14.04

Ekrāns ir lietojumprogramma, kas ļauj vairākkārt izmantot termināļa sesijas vienā logā. Tas ļauj simulēt vairākus termināļa logus, kur tas ma

Iestatiet savu DNS serveri vietnē Debian/Ubuntu

Iestatiet savu DNS serveri vietnē Debian/Ubuntu

Šajā apmācībā ir paskaidrots, kā iestatīt DNS serveri, izmantojot Bind9 uz Debian vai Ubuntu. Visā rakstā attiecīgi aizstājiet savu-domēna-nosaukums.com. plkst

Logrotate izmantošana žurnālfailu pārvaldībai

Logrotate izmantošana žurnālfailu pārvaldībai

Ievads Logrotate ir Linux utilīta, kas vienkāršo žurnālfailu administrēšanu. Tas parasti darbojas reizi dienā, izmantojot cron uzdevumu, un pārvalda žurnālu bāzi

Icinga2 modificēšana, lai izmantotu galveno/klienta modeli operētājsistēmā CentOS 6 vai CentOS 7

Icinga2 modificēšana, lai izmantotu galveno/klienta modeli operētājsistēmā CentOS 6 vai CentOS 7

Icinga2 ir spēcīga uzraudzības sistēma, un, ja to izmanto galvenā klienta modelī, tā var aizstāt vajadzību pēc NRPE balstītām uzraudzības pārbaudēm. Meistars-klients

Iestatiet Red5 Media Server operētājsistēmā Ubuntu 16.04

Iestatiet Red5 Media Server operētājsistēmā Ubuntu 16.04

Vai izmantojat citu sistēmu? Red5 ir atvērtā pirmkoda multivides serveris, kas ieviests Java un ļauj palaist Flash vairāku lietotāju lietojumprogrammas, piemēram, tiešraides straumēšanu.

Kompilējiet un instalējiet Nginx ar PageSpeed ​​moduli operētājsistēmā Debian 8

Kompilējiet un instalējiet Nginx ar PageSpeed ​​moduli operētājsistēmā Debian 8

Šajā rakstā mēs redzēsim, kā apkopot un instalēt Nginx galveno līniju no oficiālajiem Nginx avotiem ar PageSpeed ​​moduli, kas ļauj t

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā Ubuntu 16.04 LTS

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā Ubuntu 16.04 LTS

Vai izmantojat citu sistēmu? Apache Cassandra ir bezmaksas un atvērtā koda NoSQL datu bāzes pārvaldības sistēma, kas ir izstrādāta, lai nodrošinātu mērogojamību, hig.

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā CentOS 7

Kā instalēt Apache Cassandra 3.11.x operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Apache Cassandra ir bezmaksas un atvērtā koda NoSQL datu bāzes pārvaldības sistēma, kas ir izstrādāta, lai nodrošinātu mērogojamību, hig.

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk