Krijo një aplikacion ueb Hapi.js duke përdorur Node.js në Ubuntu 16.04

Hapi.js është një kornizë e pasur, e fuqishme dhe e fuqishme Node.js e krijuar për ndërtimin e aplikacioneve në ueb në ekosistemin Node.js. Dizajni i tij i drejtpërdrejtë e bën të lehtë fillimin. Hapi përdor shumë nga veçoritë më të fundit të JavaScript ES6 në thelbin e tij, siç janë premtimet ES6. Për ata prej jush që kanë përdorur Express më parë, Hapi ju lejon të provoni diçka të re dhe të provoni të gjitha veçoritë më të fundit të JavaScript.

Në këtë tutorial, qëllimi ynë do të jetë të krijojmë një faqe bazë të internetit Hapi.js, e cila është e organizuar nga Vultr VPS-ja jonë, në Ubuntu 16.04 LTS. Për ata që kanë një domen për faqen e tyre, ne do të përdorim një përfaqësues të kundërt për të lidhur domenin tonë me faqen tonë të internetit. Më në fund, do të mësojmë se si ta menaxhojmë atë me një menaxher procesi. Tani që e kemi hequr atë nga rruga, le të fillojmë.

Instalimi i Node.js

Do të na duhet të instalojmë Node.js. Për ta bërë këtë në Ubuntu 16.04 LTS, ndiqni këto udhëzime.

Shtimi i depove

Do të na duhet të shtojmë depon e NodeSource APT, e cila përmban versionin më të fundit LTS të Node.js.

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

Ne po shkarkojmë një skript që do ta përdorim për të shtuar depon në listën tonë të burimeve, si dhe për të instaluar Node.js nga depoja NodeSource.

Instalimi i Build Tools

Përveç instalimit të vetë Node.js, do të na duhet gjithashtu të instalojmë disa mjete të nevojshme ndërtimi, të cilat do të ndihmojnë në ndërtimin e çdo moduli që mund të na duhet të instalojmë.

sudo apt-get install -y build-essential

Kjo thjesht shkarkon dhe instalon mjetet e ndërtimit nga depoja.

Vendosja e drejtorisë së aplikacionit

Është praktikë e mirë të caktojmë një dosje që do të përdorim për aplikacionin tonë, e cila do të përmbajë të gjitha të dhënat e aplikacionit tonë, si skedarët e konfigurimit dhe skriptet e nisjes. Krijo një dosje, duke e emërtuar si të duash. Për hir të këtij tutoriali, do të supozoj se e keni emërtuar site.

mkdir site

Pasi të keni krijuar dosjen, tani ne mund ta ndryshojmë atë. Duke u siguruar që jeni në drejtorinë që sapo keni krijuar, hapni magjistarin e paketës NPM.

npm init

Do t'ju kërkojë të futni disa gjëra të ndryshme, të tilla si emri i aplikacionit, skedari fillestar, licenca etj. Shumica e fushave mund t'i lini të paracaktuara, me përjashtim të fushave më të dukshme, siç është emri i aplikacionit tuaj. Në fund, do të duket kështu:

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

Pasi të jeni të kënaqur me rezultatin, klikoni ENTERpër të ruajtur skedarin.

Po instalon Hapi.js

Tani që drejtoria juaj është ndërtuar me sukses, tani mund të vazhdojmë të instalojmë Hapi.js. Siç u përmend më parë, ne do të përdorim NPM për të shkarkuar Hapi.js, si dhe varësitë e tij, për projektin tonë. Në drejtorinë e projektit, ekzekutoni sa më poshtë.

npm install hapi.js

Kjo shkarkon Hapi.js nga NPM dhe e instalon atë në drejtorinë tonë të projektit. Në të njëjtën periudhë, çdo varësi në të cilën mund të mbështetet Hapi.js shkarkohet gjithashtu për lehtësinë tonë.

Vendosja e aplikacionit tonë të mostrës

Tani është koha për të konfiguruar skedarin tonë bazë të aplikacionit Hapi.js. Kjo do të përmbajë të gjithë kodin tonë për aplikacionin. Më tej, ne mund të zgjerojmë kodin tonë të aplikimit dhe t'i shtojmë më shumë gjëra, sipas mendimit tonë.

Tjetra, ne do të krijojmë skedarin tonë fillestar. Referojuni mainseksionit të package.jsonskedarit tuaj , për të përcaktuar saktësisht se si ta emërtoni skedarin. Meqenëse kam përdorur skemën e paracaktuar të emërtimit, skedari ynë do të quhet index.js.

nano index.js

Pasi të jeni brenda redaktuesit të tekstit nano, krijoni kodin tuaj bazë të aplikacionit, si kështu.

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

Së pari, ne importojmë modulin Hapi. Më pas, ne inicializojmë konstruktorin e serverit tonë, i cili përmban hostin ku duam të ekzekutojmë serverin, si dhe portin, i cili është 3000për këtë tutorial. Më pas, ne vendosim një ruter bazë, i cili tregon se sa herë që dikush viziton faqen, ai do të përshëndetet me një mesazh të thjeshtë. Për të përfunduar të gjitha, ne kemi një funksion asinkronik, për të nisur serverin tonë, i cili do të regjistrohet në tastierën që serveri ynë po funksionon. Kur të keni mbaruar, ruani dhe mbyllni skedarin ( CTRL+ X)

Tani që skedari ynë kryesor është konfiguruar, ne jemi gati të fillojmë aplikimin tonë.

node index.js

Nëse shihni " Our server is running!" në tastierë, atëherë serveri filloi me sukses.

Instaloni Nginx

Meqenëse Nginx është i disponueshëm në depot e paracaktuara të Ubuntu, instalimi është i drejtpërdrejtë. Thjesht përditësoni listat e paketave tuaja dhe instaloni atë.

sudo apt update
sudo apt install nginx -y 

Pas rifreskimit të listave të paketave, Nginx dhe varësitë e tij do të instalohen.

Konfiguro Nginx

Në mënyrë që Nginx të kthejë proxy aplikacionin tonë, do të na duhet të krijojmë një skedar konfigurimi. Ky skedar konfigurimi do të mbajë informacione rreth aplikacionit tonë, të cilin Nginx do ta përdorë për përfaqësuesin e kundërt.

Fshini konfigurimin e paracaktuar që krijoi Nginx, pasi ne do ta zëvendësojmë atë me tonën më vonë.

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

Krijoni një skedar të ri në sites-availabledosje. Sa i përket emërtimit, mund t'i përmbahemi thjesht site, për thjeshtësi.

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

Në skedar, ngjisni sa vijon dhe ruajeni.

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

Në këtë skedar, ne po i themi Nginx të dëgjojë në port 80. Ne po vendosim gjithashtu kalimin e proxy në localhostadresën dhe portin 3000, i cili është i njëjti port si aplikacioni ynë Hapi.

Tani mund të lundroni përsëri në drejtorinë e aplikacionit tuaj dhe të filloni faqen. Pasi faqja të ketë filluar, thjesht lundroni te http://yourdomain.comose http://yourip, dhe do të shihni tekstin " Hello World".

Instaloni PM2

PM2 mund të gjendet në depon e NPM, dhe mund ta instaloni globalisht për të qenë i aksesueshëm nga kudo, si kështu.

sudo npm install pm2 -g

-gFlamurin në fund tregon se ne duam të instaloni modulin në dosje module globale, e cila do të na lejojë që të përdorin atë jashtë directory e projektit tonë. Kjo përdoret në mënyrë që projekti ynë të sillet si një aplikacion normal i sistemit.

Nisja e aplikacionit tonë me PM2

Pasi të keni instaluar PM2, lundroni përsëri te drejtoria e projektit tuaj. Sintaksa për të filluar aplikacionin tonë do të jetë paksa e ndryshme tani. Kështu do ta bëjmë me PM2.

pm2 start index.js --name site

Ne përdorim funksionin e fillimit PM2, i cili në thelb krijon një profil për aplikacionin tonë, me emrin site. Pas ekzekutimit të kësaj komande, faqja juaj e internetit do të fillojë, por do të vini re se regjistrat nuk do të shfaqen. Kjo për shkak se mënyra se si ne i shohim regjistrat tani është e ndryshme.

pm2 logs site

Ju madje mund të specifikoni sa rreshta regjistrash dëshironi të shihni, me --linesargument.

konkluzioni

Ju keni konfiguruar me sukses një server në internet Hapi.js, e keni kthyer atë në proksi me Nginx dhe keni mësuar se si ta menaxhoni më mirë atë me PM2. Me këtë njohuri, ju mund të zgjeroni më tej këtë tutorial dhe të bëni një aplikacion shumë të avancuar Hapi.js. Për të mësuar më shumë rreth mundësive të Hapi, vizitoni dokumentacionin e tyre zyrtar . Nëse dëshironi të mësoni më shumë rreth mundësive të PM2, referojuni udhëzuesit të tyre të fillimit të shpejtë .


Instaloni Plesk në CentOS 7

Instaloni Plesk në CentOS 7

Përdorimi i një sistemi të ndryshëm? Plesk është një panel kontrolli i pronarit të hostit në internet që lejon përdoruesit të administrojnë faqet e tyre të internetit personale dhe/ose të klientëve, bazat e të dhënave

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Hyrje Lets Encrypt është një shërbim i autoritetit certifikues që ofron certifikata falas TLS/SSL. Procesi i instalimit është thjeshtuar nga Certbot,

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

PHP dhe paketat e lidhura me to janë komponentët më të përdorur gjatë vendosjes së një serveri në internet. Në këtë artikull, ne do të mësojmë se si të konfigurojmë PHP 7.0 ose PHP 7.1 o

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Hyrje Lighttpd është një fork i Apache që synon të jetë shumë më pak intensiv me burime. Është i lehtë, prandaj emri i tij, dhe është mjaft i thjeshtë për t'u përdorur. Instaloni

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

1. Virtualmin/Webmin Virtualmin është një panel kontrolli i fuqishëm dhe fleksibël i hostimit në internet për sistemet Linux dhe UNIX i bazuar në bazën e mirënjohur të internetit me burim të hapur.

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Yii është një kornizë PHP që ju lejon të zhvilloni aplikacione më shpejt dhe më lehtë. Instalimi i Yii në Ubuntu është i thjeshtë, siç do të mësoni saktësisht

Përdorimi i ekranit në Ubuntu 14.04

Përdorimi i ekranit në Ubuntu 14.04

Screen është një aplikacion që lejon përdorimin e shumëfishtë të sesioneve të terminalit brenda një dritareje. Kjo ju lejon të simuloni dritare të shumta terminale ku është ma

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Ky tutorial shpjegon se si të konfiguroni një server DNS duke përdorur Bind9 në Debian ose Ubuntu. Gjatë gjithë artikullit, zëvendësoni emrin e domain-it tuaj në përputhje me rrethanat. Në

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Hyrje Logrotate është një mjet Linux që thjeshton administrimin e skedarëve të regjistrit. Zakonisht funksionon një herë në ditë përmes një pune cron dhe menaxhon bazën e regjistrave

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

VULTR kohët e fundit ka bërë ndryshime në fund të tyre dhe gjithçka duhet të funksionojë mirë tani me NetworkManager të aktivizuar. Nëse dëshironi të çaktivizoni

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Icinga2 është një sistem i fuqishëm monitorimi dhe kur përdoret në një model master-klient, ai mund të zëvendësojë nevojën për kontrolle monitorimi të bazuara në NRPE. Master-klien

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Në këtë artikull, ne do të shohim se si të përpiloni dhe instaloni Nginx mainline nga burimet zyrtare të Nginx me modulin PageSpeed, i cili ju lejon t

Si të instaloni Gitea në Debian 9

Si të instaloni Gitea në Debian 9

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga Git. Gitea është shkruar në Golang dhe është

Si të instaloni Gitea në Ubuntu 18.04

Si të instaloni Gitea në Ubuntu 18.04

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga git. Gitea është shkruar në Golang dhe është

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? MODX Revolution është një Sistem i Menaxhimit të Përmbajtjes (CMS) i shpejtë, fleksibël, i shkallëzuar, me burim të hapur, i shkallës së ndërmarrjes, i shkruar në PHP. Ajo i

Instalimi i Docker CE në Ubuntu 16.04

Instalimi i Docker CE në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Docker është një aplikacion që lejon vendosjen e programeve që ekzekutohen si kontejnerë. Ishte shkruar në programin popullor Go

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Golang është një gjuhë programimi e zhvilluar nga Google. Falë shkathtësisë, thjeshtësisë dhe besueshmërisë së tij, Golang është bërë një nga më të populluarit

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Çfarë është Lopa e Pistë (CVE-2016-5195)? Dobësia e Dirty Cow shfrytëzohet përmes mënyrës se si Linux përpunon kodin. Ai lejon që një përdorues i paprivilegjuar të gai

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Të kesh vetëm një përdorues, i cili është root, mund të jetë i rrezikshëm. Pra, le ta rregullojmë atë. Vultr na ofron lirinë për të bërë si të duam me përdoruesit dhe serverët tanë

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Nëse e keni harruar fjalëkalimin tuaj rrënjësor MySQL, mund ta rivendosni atë duke ndjekur hapat në këtë artikull. Procesi është mjaft i thjeshtë dhe funksionon në to

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë