Creare unapplicazione Web Hapi.js utilizzando Node.js su Ubuntu 16.04

Hapi.js è un framework Node.js ricco, robusto e potente progettato per la creazione di applicazioni Web nell'ecosistema Node.js. Il suo design semplice lo rende facile per iniziare. Hapi utilizza al suo interno molte delle più recenti funzionalità di JavaScript ES6, come promesse da ES6. Per quelli di voi che hanno già utilizzato Express in precedenza, Hapi ti consente di provare qualcosa di nuovo e provare tutte le ultime funzionalità JavaScript.

In questo tutorial, il nostro obiettivo sarà quello di impostare una pagina Web di base Hapi.js, ospitata dal nostro Vultr VPS, su Ubuntu 16.04 LTS. Per coloro che hanno un dominio per il loro sito, utilizzeremo un proxy inverso per collegare il nostro dominio al nostro sito Web. Infine, impareremo come gestirlo con un manager di processo. Ora che abbiamo rimosso questo, iniziamo.

Installazione di Node.js

Dovremo installare Node.js. Per farlo su Ubuntu 16.04 LTS, segui queste istruzioni.

Aggiunta del repository

Dovremo aggiungere il repository APT NodeSource, che contiene l'ultima versione LTS di Node.js.

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

Stiamo scaricando uno script che useremo per aggiungere il repository al nostro elenco di fonti, oltre a installare Node.js dal repository NodeSource.

Installazione di Build Tools

Oltre a installare Node.js stesso, dovremo anche installare alcuni strumenti di compilazione necessari, che aiuteranno a costruire tutti i moduli che potremmo aver bisogno di installare.

sudo apt-get install -y build-essential

Questo semplicemente scarica e installa gli strumenti di compilazione dal repository.

Impostazione della directory dell'applicazione

È buona norma designare una cartella che utilizzeremo per la nostra applicazione, che conterrà tutti i dati della nostra applicazione, come file di configurazione e script di avvio. Crea una cartella, nominandola come preferisci. Per il bene di questo tutorial, suppongo che tu l'abbia chiamato site.

mkdir site

Una volta creata la cartella, ora possiamo cambiarla. Assicurarsi di trovarsi nella directory appena creata, avviare la procedura guidata del pacchetto NPM.

npm init

Ti verrà chiesto di inserire alcune cose diverse, come il nome della tua applicazione, il file di avvio, la licenza e così via. La maggior parte dei campi è possibile lasciare i valori predefiniti, ad eccezione dei campi più ovvi, come il nome dell'applicazione. Alla fine, sarà simile a questo:

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

Una volta che sei soddisfatto del risultato, fai clic ENTERper salvare il file.

Installazione di Hapi.js

Ora che la tua directory è stata costruita con successo, ora possiamo procedere con l'installazione di Hapi.js. Come accennato in precedenza, utilizzeremo NPM per scaricare Hapi.js, nonché le sue dipendenze, per il nostro progetto. Nella directory del progetto, eseguire quanto segue.

npm install hapi.js

Questo scarica Hapi.js da NPM e lo installa nella nostra directory di progetto. Allo stesso modo, tutte le dipendenze su cui Hapi.js può fare affidamento vengono anche scaricate per nostra comodità.

Impostazione della nostra applicazione di esempio

Ora è il momento di impostare il nostro file di applicazione Hapi.js di base. Questo conterrà tutto il nostro codice per l'applicazione. Più avanti, possiamo espandere il nostro codice dell'applicazione e aggiungere altre cose a suo piacimento.

Successivamente, creeremo il nostro file di avvio. Fare riferimento alla mainsezione del package.jsonfile per determinare esattamente come denominare il file. Da quando ho usato lo schema di denominazione predefinito, verrà chiamato il nostro file index.js.

nano index.js

Una volta entrato nell'editor di testo nano, crea il codice dell'applicazione di base, in questo modo.

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

Innanzitutto, importiamo il modulo Hapi. Quindi inizializziamo il nostro costruttore di server, che contiene l'host su cui vogliamo eseguire il server, così come la porta, che è 3000per questo tutorial. Successivamente, impostiamo un router di base, che indica che ogni volta che qualcuno visita il sito, verrà accolto con un semplice messaggio. Per finire, abbiamo una funzione asincrona per avviare il nostro server, che accederà alla console su cui è in esecuzione il nostro server. Al termine, salva e chiudi il file ( CTRL+ X)

Ora che il nostro file principale è impostato, siamo pronti per avviare la nostra applicazione.

node index.js

Se vedi " Our server is running!" nella console, il server è stato avviato correttamente.

Installa Nginx

Poiché Nginx è disponibile nei repository Ubuntu predefiniti, l'installazione è semplice. Basta aggiornare gli elenchi dei pacchetti e installarli.

sudo apt update
sudo apt install nginx -y 

Dopo aver aggiornato gli elenchi dei pacchetti, verranno installati Nginx e le sue dipendenze.

Configura Nginx

Per consentire a Nginx di invertire il proxy della nostra applicazione, dovremo creare un file di configurazione. Questo file di configurazione conterrà informazioni sulla nostra applicazione, che Nginx utilizzerà per il proxy inverso.

Elimina la configurazione predefinita creata da Nginx, poiché la sostituiremo con la nostra in seguito.

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

Crea un nuovo file nella sites-availablecartella. Per quanto riguarda la denominazione, possiamo attenerci semplicemente site, per semplicità.

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

Nel file, incolla quanto segue e salva.

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

In questo file, stiamo dicendo a Nginx di ascoltare sulla porta 80. Stiamo anche impostando il passthrough proxy localhostsull'indirizzo e sulla porta 3000, che è la stessa porta della nostra applicazione Hapi.

Ora puoi tornare alla directory dell'applicazione e avviare il sito. Una volta avviato il sito, vai semplicemente su http://yourdomain.como http://youripe vedrai il testo " Hello World".

Installa PM2

PM2 può essere trovato nel repository NPM e puoi installarlo a livello globale per essere accessibile da qualsiasi luogo, in questo modo.

sudo npm install pm2 -g

Il -gflag alla fine indica che vogliamo installare il modulo nella cartella dei moduli globali, che ci permetterà di usarlo al di fuori della nostra directory di progetto. Questo viene utilizzato affinché il nostro progetto si comporti come una normale applicazione di sistema.

Avvio della nostra app con PM2

Dopo aver installato PM2, tornare alla directory del progetto. La sintassi per avviare la nostra applicazione sarà leggermente diversa ora. Ecco come lo faremo con PM2.

pm2 start index.js --name site

Utilizziamo la funzione di avvio PM2, che fondamentalmente crea un profilo per la nostra applicazione, sotto il nome site. Dopo aver eseguito questo comando, il tuo sito Web verrà avviato, ma noterai che i registri non verranno visualizzati. Questo perché il modo in cui visualizziamo i registri ora è diverso.

pm2 logs site

Puoi anche specificare quante righe di log vuoi vedere, con l' --linesargomento.

Conclusione

Hai configurato correttamente un server Web Hapi.js, invertito il proxy con Nginx e imparato a gestirlo meglio con PM2. Con questa conoscenza, puoi espandere ulteriormente questo tutorial e creare un'applicazione Hapi.js molto avanzata. Per saperne di più sulle possibilità di Hapi, visita la loro documentazione ufficiale . Se vuoi saperne di più sulle possibilità di PM2, consulta la loro guida rapida .



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.