Креирајте веб апликацију Хапи.јс користећи Ноде.јс на Убунту 16.04

Хапи.јс је богат, робустан и моћан Ноде.јс оквир дизајниран за прављење веб апликација у екосистему Ноде.јс. Његов једноставан дизајн олакшава почетак. Хапи користи многе од најновијих ЈаваСцрипт ЕС6 функција у својој сржи, као што су ЕС6 обећања. За оне од вас који су раније користили Екпресс, Хапи вам омогућава да испробате нешто ново и искусите све најновије ЈаваСцрипт функције.

У овом туторијалу, наш циљ ће бити да поставимо основну Хапи.јс веб страницу, која се хостује са нашег Вултр ВПС-а, на Убунту 16.04 ЛТС. За оне који имају домен за своју веб локацију, користићемо обрнути прокси да повежемо наш домен са нашом веб локацијом. Коначно, научићемо како да њиме управљамо са менаџером процеса. Сада када смо то склонили са пута, хајде да почнемо.

Инсталирање Ноде.јс

Мораћемо да инсталирамо Ноде.јс. Да бисте то урадили на Убунту 16.04 ЛТС, пратите ова упутства.

Додавање спремишта

Мораћемо да додамо НодеСоурце АПТ спремиште, које садржи најновије ЛТС издање Ноде.јс.

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

Ми преузимамо скрипту коју ћемо користити да додамо спремиште на нашу листу извора, као и да инсталирамо Ноде.јс из НодеСоурце спремишта.

Инсталирање алата за изградњу

Поред инсталирања самог Ноде.јс-а, такође ћемо морати да инсталирамо неке неопходне алате за прављење, који ће помоћи у изградњи свих модула које ће нам можда бити потребно да инсталирамо.

sudo apt-get install -y build-essential

Ово једноставно преузима и инсталира алате за прављење из спремишта.

Подешавање директоријума апликација

Добра је пракса да одредимо фасциклу коју ћемо користити за нашу апликацију, а која ће садржати све податке наше апликације, као што су конфигурационе датотеке и скрипте за покретање. Направите фасциклу и дајте јој име како год желите. Зарад овог упутства, претпостављам да сте га назвали site.

mkdir site

Када направите фасциклу, сада можемо да се променимо у њу. Уверите се да сте у директоријуму који сте управо креирали, покрените чаробњак за НПМ пакет.

npm init

Од вас ће се тражити да унесете неколико различитих ствари, као што су назив ваше апликације, почетна датотека, лиценца и тако даље. Већина поља можете оставити подразумеваним, осим очигледнијих поља, као што је назив ваше апликације. На крају ће изгледати овако:

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

Када будете задовољни резултатом, кликните ENTERда бисте сачували датотеку.

Инсталирање Хапи.јс

Сада када је ваш директоријум успешно направљен, сада можемо да наставимо са инсталацијом Хапи.јс. Као што је раније поменуто, користићемо НПМ да преузмемо Хапи.јс, као и његове зависности, за наш пројекат. У директоријуму пројекта покрените следеће.

npm install hapi.js

Ово преузима Хапи.јс са НПМ-а и инсталира га у директоријум нашег пројекта. У истом трчењу, све зависности на које се Хапи.јс може ослонити се такође преузимају ради наше погодности.

Постављање нашег узорка апликације

Сада је време да подесите нашу основну апликацију Хапи.јс. Ово ће садржати сав наш код за апликацију. Даље на путу, можемо да проширимо наш код апликације и да му додамо још ствари, како нам одговара.

Затим ћемо креирати нашу почетну датотеку. Вратите се на mainодељак ваше package.jsonдатотеке да бисте тачно одредили како да именујете датотеку. Пошто сам користио подразумевану шему именовања, наша датотека ће се звати index.js.

nano index.js

Једном када сте у уређивачу нано текста, креирајте свој основни код апликације, овако.

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

Прво увозимо Хапи модул. Затим иницијализујемо наш конструктор сервера, који садржи хост на коме желимо да покренемо сервер, као и порт који је 3000за овај водич. Затим постављамо основни рутер, који указује да ће сваки пут када неко посети веб локацију бити дочекан једноставном поруком. Као врхунац свега, имамо асинхронску функцију, да покренемо наш сервер, који ће се пријавити на конзолу коју наш сервер ради. Када завршите, сачувајте и затворите датотеку ( CTRL+ X)

Сада када је наш главни фајл постављен, спремни смо да покренемо нашу апликацију.

node index.js

Ако видите „ Our server is running!“ у конзоли, сервер је успешно покренут.

Инсталирајте Нгинк

Пошто је Нгинк доступан у подразумеваним Убунту репозиторијумима, инсталација је једноставна. Једноставно ажурирајте своје листе пакета и инсталирајте их.

sudo apt update
sudo apt install nginx -y 

Након освежавања листе пакета, Нгинк и његове зависности ће бити инсталирани.

Конфигуришите Нгинк

Да би Нгинк могао да обрне прокси нашу апликацију, мораћемо да креирамо конфигурациону датотеку. Ова конфигурациона датотека ће садржати информације о нашој апликацији, коју ће Нгинк користити за обрнути прокси.

Избришите подразумевану конфигурацију коју је Нгинк креирао, јер ћемо је касније заменити својом.

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

Направите нову датотеку у sites-availableфасцикли. Што се тиче именовања, можемо се држати једноставно site, због једноставности.

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

У датотеку налепите следеће и сачувајте.

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

У овој датотеци кажемо Нгинк-у да слуша порт 80. Такође постављамо прокси пролаз на localhostадресу и порт 3000, који је исти порт као и наша Хапи апликација.

Сада можете да се вратите до директоријума апликације и покренете сајт. Када се сајт покрене, једноставно идите на http://yourdomain.comили http://yourip, и видећете текст " Hello World".

Инсталирајте ПМ2

ПМ2 се може наћи у НПМ репозиторијуму, и можете га инсталирати глобално да бисте били доступни са било ког места, на пример.

sudo npm install pm2 -g

Ознака -gна крају означава да желимо да инсталирамо модул у директоријум глобалних модула, што ће нам омогућити да га користимо ван нашег директоријума пројекта. Ово се користи да би се наш пројекат понашао као нормална системска апликација.

Покрећемо нашу апликацију са ПМ2

Када инсталирате ПМ2, вратите се до директоријума вашег пројекта. Синтакса за покретање наше апликације сада ће бити мало другачија. Овако ћемо то урадити са ПМ2.

pm2 start index.js --name site

Користимо ПМ2 старт функцију, која у основи креира профил за нашу апликацију, под именом site. Након што покренете ту команду, ваша веб локација ће се покренути, али приметићете да се евиденција неће приказати. То је зато што је начин на који сада гледамо дневнике другачији.

pm2 logs site

Можете чак да одредите колико редова евиденције желите да видите, са --linesаргументом.

Закључак

Успешно сте поставили Хапи.јс веб сервер, обрнули га помоћу Нгинк-а и научили како да боље управљате њиме помоћу ПМ2. Са овим знањем, можете додатно проширити овај водич и направити веома напредну Хапи.јс апликацију. Да бисте сазнали више о могућностима Хапија, посетите њихову званичну документацију . Ако желите да сазнате више о могућностима ПМ2, погледајте њихов водич за брзи почетак .


Инсталирајте Плеск на ЦентОС 7

Инсталирајте Плеск на ЦентОС 7

Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података

Подесите Цацти на Дебиан Јессие

Подесите Цацти на Дебиан Јессие

Увод Цацти је алатка отвореног кода за праћење и графику која је у потпуности заснована на РРД подацима. Преко Цацтуса можете надгледати скоро сваку врсту уређаја

Инсталирајте Летс Енцрипт ССЛ на ВордПресс апликацију једним кликом

Инсталирајте Летс Енцрипт ССЛ на ВордПресс апликацију једним кликом

Увод Летс Енцрипт је услуга ауторитета за сертификате која нуди бесплатне ТЛС/ССЛ сертификате. Цертбот поједностављује процес инсталације,

Подесите иРедМаил на Дебиан Вхеези

Подесите иРедМаил на Дебиан Вхеези

Користите другачији систем? Овај водич ће вам показати како да инсталирате групни софтвер иРедМаил на нову инсталацију Дебиан Вхеези-а. Требало би да користите сервис

Креирање Јекилл блога на Убунту 16.04

Креирање Јекилл блога на Убунту 16.04

Користите другачији систем? Јекилл је одлична алтернатива ВордПресс-у за блоговање или дељење садржаја. Не захтева никакве базе података и веома је лако и

Како подесити надоградње без надзора на Дебиан 9 (протежу)

Како подесити надоградње без надзора на Дебиан 9 (протежу)

Користите другачији систем? Ако купите Дебиан сервер, увек би требало да имате најновије безбедносне закрпе и ажурирања, без обзира да ли спавате или не

Како инсталирати и конфигурисати ПХП 7.0 или ПХП 7.1 на Убунту 16.04

Како инсталирати и конфигурисати ПХП 7.0 или ПХП 7.1 на Убунту 16.04

ПХП и повезани пакети су најчешће коришћене компоненте приликом постављања веб сервера. У овом чланку ћемо научити како да подесите ПХП 7.0 или ПХП 7.1 о

Како инсталирати Скуид проки на ЦентОС

Како инсталирати Скуид проки на ЦентОС

Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин

Три бесплатна контролна панела сервера (брза инсталација)

Три бесплатна контролна панела сервера (брза инсталација)

1. Виртуалмин/Вебмин Виртуалмин је моћна и флексибилна контролна табла за веб хостинг за Линук и УНИКС системе заснована на добро познатој веб бази отвореног кода

Подешавање Иии апликације на Убунту 14.04

Подешавање Иии апликације на Убунту 14.04

Иии је ПХП оквир који вам омогућава да брже и лакше развијате апликације. Инсталирање Иии-а на Убунту је једноставно, као што ћете тачно научити

Коришћење екрана на Убунту 14.04

Коришћење екрана на Убунту 14.04

Сцреен је апликација која омогућава вишеструку употребу терминалских сесија унутар једног прозора. Ово вам омогућава да симулирате више прозора терминала где је ма

Подесите сопствени ДНС сервер на Дебиан/Убунту

Подесите сопствени ДНС сервер на Дебиан/Убунту

Овај водич објашњава како да подесите ДНС сервер користећи Бинд9 на Дебиан-у или Убунту-у. У целом чланку замените иоур-домаин-наме.цом у складу са тим. Ат тх

Коришћење Логротате за управљање датотекама евиденције

Коришћење Логротате за управљање датотекама евиденције

Увод Логротате је Линук услужни програм који поједностављује администрацију датотека евиденције. Обично се покреће једном дневно преко црон посла и управља базом евиденције

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент

Подесите Ред5 Медиа Сервер на Убунту 16.04

Подесите Ред5 Медиа Сервер на Убунту 16.04

Користите другачији систем? Ред5 је медијски сервер отвореног кода имплементиран у Јави који вам омогућава да покренете Фласх вишекорисничке апликације као што је ливе стреамин

Компајлирајте и инсталирајте Нгинк са модулом ПагеСпеед на Дебиан 8

Компајлирајте и инсталирајте Нгинк са модулом ПагеСпеед на Дебиан 8

У овом чланку ћемо видети како да компајлирате и инсталирате Нгинк маинлине из званичних извора Нгинк-а помоћу модула ПагеСпеед, који вам омогућава да

Како инсталирати Апацхе Цассандра 3.11.к на Убунту 16.04 ЛТС

Како инсталирати Апацхе Цассандра 3.11.к на Убунту 16.04 ЛТС

Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу

Како инсталирати Ванилла Форум на Убунту 16.04

Како инсталирати Ванилла Форум на Убунту 16.04

Користите другачији систем? Ванилла форум је апликација отвореног кода написана у ПХП-у. Потпуно је прилагодљив, једноставан за коришћење и подржава екстерне

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више