Utwórz aplikację internetową Hapi.js za pomocą Node.js na Ubuntu 16.04

Hapi.js to bogata, solidna i wydajna platforma Node.js przeznaczona do budowania aplikacji internetowych w ekosystemie Node.js. Prosta konstrukcja ułatwia rozpoczęcie pracy. Hapi korzysta z wielu najnowszych funkcji JavaScript ES6, takich jak obietnice ES6. Dla tych, którzy korzystali wcześniej z Express, Hapi pozwala wypróbować coś nowego i poznać wszystkie najnowsze funkcje JavaScript.

W tym samouczku naszym celem będzie skonfigurowanie podstawowej strony internetowej Hapi.js, która jest hostowana z naszego Vultr VPS na Ubuntu 16.04 LTS. Dla tych, którzy mają domenę dla swojej witryny, będziemy używać odwrotnego proxy do połączenia naszej domeny z naszą witryną. Na koniec nauczymy się, jak nim zarządzać z menedżerem procesów. Teraz, gdy już to zrobiliśmy, zacznijmy.

Instalowanie Node.js

Będziemy musieli zainstalować Node.js. Aby to zrobić w systemie Ubuntu 16.04 LTS, postępuj zgodnie z tymi instrukcjami.

Dodawanie repozytorium

Będziemy musieli dodać repozytorium APT NodeSource, które zawiera najnowszą wersję Lode Node.js.

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

Pobieramy skrypt, którego użyjemy do dodania repozytorium do naszej listy źródeł, a także instalujemy Node.js z repozytorium NodeSource.

Instalowanie narzędzi do budowania

Oprócz instalacji samego Node.js, będziemy również musieli zainstalować niezbędne narzędzia do budowania, które pomogą w budowaniu modułów, które mogą być konieczne.

sudo apt-get install -y build-essential

To po prostu pobiera i instaluje narzędzia do budowania z repozytorium.

Konfigurowanie katalogu aplikacji

Dobrą praktyką jest wyznaczenie folderu, który będzie używany dla naszej aplikacji, który będzie zawierał wszystkie dane naszej aplikacji, takie jak pliki konfiguracyjne i skrypty startowe. Utwórz folder, nadając mu nazwę dowolną. Na potrzeby tego samouczka zakładam, że nazwałeś go site.

mkdir site

Po utworzeniu folderu możemy go teraz zmienić. Upewnij się, że znajdujesz się w właśnie utworzonym katalogu, uruchom kreatora pakietu NPM.

npm init

Poprosi Cię o podanie kilku różnych rzeczy, takich jak nazwa aplikacji, plik startowy, licencja i tak dalej. Większość pól możesz pozostawić domyślną, z wyjątkiem bardziej oczywistych pól, takich jak nazwa aplikacji. Na koniec będzie wyglądać tak:

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

Gdy wynik będzie satysfakcjonujący, kliknij, ENTERaby zapisać plik.

Instalowanie Hapi.js

Po pomyślnym utworzeniu katalogu możemy przystąpić do instalacji Hapi.js. Jak wspomniano wcześniej, wykorzystamy NPM do pobrania pliku Hapi.js oraz jego zależności dla naszego projektu. W katalogu projektu uruchom następujące polecenie.

npm install hapi.js

Spowoduje to pobranie pliku Hapi.js z programu NPM i zainstalowanie go w naszym katalogu projektu. W tym samym cyklu wszelkie zależności, na których może polegać Hapi.js, są również pobierane dla naszej wygody.

Konfigurowanie naszej przykładowej aplikacji

Teraz nadszedł czas, aby skonfigurować nasz podstawowy plik aplikacji Hapi.js. Będzie zawierał cały nasz kod aplikacji. W dalszej części możemy rozszerzyć nasz kod aplikacji i dodać do niego więcej elementów, jeśli uznamy to za stosowne.

Następnie utworzymy nasz plik początkowy. Wróć do mainsekcji package.jsonpliku, aby dokładnie określić, jak nazwać plik. Ponieważ użyłem domyślnego schematu nazewnictwa, nasz plik zostanie wywołany index.js.

nano index.js

Gdy znajdziesz się w edytorze nano tekstowym, utwórz swój podstawowy kod aplikacji.

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

Najpierw importujemy moduł Hapi. Następnie inicjalizujemy konstruktora serwera, który zawiera host, na którym chcemy uruchomić serwer, a także port, który jest 3000przeznaczony dla tego samouczka. Następnie skonfigurowaliśmy podstawowy router, co oznacza, że ​​za każdym razem, gdy ktoś odwiedza witrynę, zostanie powitany prostą wiadomością. Na dodatek mamy funkcję asynchroniczną, aby uruchomić nasz serwer, który zaloguje się do konsoli, na której działa nasz serwer. Po zakończeniu zapisz i zamknij plik ( CTRL+ X)

Po skonfigurowaniu naszego głównego pliku jesteśmy gotowi do uruchomienia naszej aplikacji.

node index.js

Jeśli zobaczysz „ Our server is running!” w konsoli, oznacza to, że serwer uruchomił się pomyślnie.

Zainstaluj Nginx

Ponieważ Nginx jest dostępny w domyślnych repozytoriach Ubuntu, instalacja jest prosta. Po prostu zaktualizuj listy pakietów i zainstaluj ją.

sudo apt update
sudo apt install nginx -y 

Po odświeżeniu list pakietów, Nginx i jego zależności zostaną zainstalowane.

Skonfiguruj Nginx

Aby Nginx mógł odwrócić proxy naszej aplikacji, musimy utworzyć plik konfiguracyjny. Ten plik konfiguracyjny będzie zawierał informacje o naszej aplikacji, której Nginx użyje do zwrotnego proxy.

Usuń domyślną konfigurację utworzoną przez Nginx, ponieważ później zastąpimy ją własną.

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

Utwórz nowy plik w sites-availablefolderze. Jeśli chodzi o nazewnictwo, możemy trzymać się po prostu site, dla uproszczenia.

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

W pliku wklej następujące i zapisz.

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

W tym pliku mówimy Nginx, aby nasłuchiwał na porcie 80. Ustawiamy również przekazywanie proxy na localhostadres i port 3000, który jest tym samym portem, co nasza aplikacja Hapi.

Teraz możesz wrócić do katalogu aplikacji i uruchomić witrynę. Po uruchomieniu witryny przejdź do http://yourdomain.comlub http://yourip, a zobaczysz tekst „ Hello World”.

Zainstaluj PM2

PM2 można znaleźć w repozytorium NPM i można go zainstalować globalnie, aby był dostępny z dowolnego miejsca, np.

sudo npm install pm2 -g

-gFlagi na końcu oznacza, że chcemy zainstalować moduł do folderu globalnych modułów, co pozwoli nam go używać poza naszym katalogu projektu. Jest to używane, aby nasz projekt zachowywał się jak normalna aplikacja systemowa.

Uruchomienie naszej aplikacji z PM2

Po zainstalowaniu PM2 przejdź z powrotem do katalogu projektu. Składnia do uruchomienia naszej aplikacji będzie teraz nieco inna. Tak właśnie zrobimy z PM2.

pm2 start index.js --name site

Używamy funkcji startowej PM2, która w zasadzie tworzy profil dla naszej aplikacji pod nazwą site. Po uruchomieniu tego polecenia uruchomi się witryna, ale zauważysz, że dzienniki się nie wyświetlają. Jest tak, ponieważ sposób, w jaki teraz przeglądamy dzienniki, jest inny.

pm2 logs site

Za pomocą --linesargumentu możesz nawet określić liczbę wierszy dzienników, które chcesz wyświetlić .

Wniosek

Udało Ci się skonfigurować serwer WWW Hapi.js, odwrócić proxy z Nginx i nauczyć się, jak lepiej nim zarządzać za pomocą PM2. Dzięki tej wiedzy możesz dalej rozwijać ten samouczek i tworzyć bardzo zaawansowaną aplikację Hapi.js. Aby dowiedzieć się więcej o możliwościach Hapi, odwiedź ich oficjalną dokumentację . Jeśli chcesz dowiedzieć się więcej o możliwościach PM2, zapoznaj się z ich krótkim przewodnikiem .



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.