Креирајте веб апликацију Хапи.јс користећи Ноде.јс на Убунту 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, погледајте њихов водич за брзи почетак .

Остави коментар

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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