Come creare unAPI RESTful Node.js utilizzando Express.js su Ubuntu 16.04 LTS

In questo tutorial, imparerai come impostare un'API RESTful completa, che servirà le richieste HTTP utilizzando Node.js ed Express mentre inoltra il proxy con NGINX, su Ubuntu 16.04 LTS. Utilizzeremo un'applicazione chiamata Postman, uno strumento di sviluppo API molto noto, per testare la nostra API e assicurarsi che sia perfettamente funzionante e funzioni correttamente. Node.js è un framework JavaScript multipiattaforma veloce basato sul motore V8 di Chrome. È utilizzato in entrambe le applicazioni desktop e server ed è famoso per la gestione di loop di eventi a thread singolo. Useremo Node.js come backend per la nostra API RESTful, in bundle con Express.js, il nostro framework di applicazioni web creato per Node.js. Express.js è rilasciato come software gratuito e aperto. Express è lato server, scritto in JavaScript ed è progettato per la creazione di API, il che lo rende perfetto per il nostro progetto. D'altra parte, Postman è un client HTTP molto potente, con in mente lo sviluppo delle API. Presenta tutti gli strumenti che potresti desiderare per lo sviluppo delle API.

Installazione di Postman

Innanzitutto, vai sul sito Web di Postman e scarica e installa Postman per il tuo PC principale (non per il tuo server). Tutte le istruzioni di installazione saranno sul loro sito Web.

Installazione di Node.js

Per iniziare, dovremo prima installare Node.js in modo da poter iniziare a sviluppare la nostra API. Scaricheremo e installeremo Node.js dal sito ufficiale.

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

Inoltre, vorrai anche prendere gli strumenti di costruzione necessari, che saranno utili nella compilazione di moduli.

sudo apt-get install build-essential

Per questo tutorial, utilizzeremo la versione LTS di Node.js, che è la versione 8.9.3.

Inizializzazione del nostro progetto Node.js

Dovremo inizializzare un nuovo progetto Node.js, che conterrà un'applicazione. Per fare ciò, crea una nuova directory.

 mkdir expressapi 

Passa alla nuova directory. Una volta dentro, esegui npm inite completa tutte le istruzioni richieste. Prendi nota del "punto di ingresso" dell'applicazione: creerai questo file in seguito. Al termine, vedrai un package.jsonfile nella tua directory corrente. Funziona come una descrizione del nostro progetto ed elenca tutte le dipendenze necessarie per funzionare.

Impostazione di Express.js

Ora configureremo Express.js e le sue dipendenze.

npm install express

Inizierà il processo di installazione. Ci vorranno alcuni minuti per completare il download di tutto.

Avvio del nostro file principale

Successivamente, creeremo il nostro file di partenza principale per la nostra API. Qui è dove utilizzerai il "punto di ingresso" che hai visto nel package.jsonfile. Per il bene di questo tutorial, userò il default schema di denominazione, index.js.

touch index.js

Quindi, aprilo nell'editor di testo nano.

nano index.js

Nel nostro file principale, vogliamo prima chiamare tutti i nostri pacchetti principali e registrare i nostri percorsi.

var express = require('express');        
var app = express();                 
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;  
const router = express.Router();
router.get('/', function(req, res) {
    res.json({ message: 'API is Online!' });   
});

app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);

Fondamentalmente quello che stiamo facendo qui è inizializzare la nostra app e configurare un router di base per la nostra API. Nota che impostiamo la porta della nostra applicazione su 8080. Avremo bisogno di questo numero per quando configureremo la nostra API RESTful. Ora siamo pronti per andare avanti e testare la nostra API.

Testare la nostra API con Postman

Nella directory del progetto, eseguire quanto segue.

node <filename>.js

Ciò avvierà l'API, dove si <filename>trova il file di avvio specificato nel package.jsonfile. Quindi, apri Postman sul tuo PC / Mac e fai clic sul pulsante " New" nell'angolo in alto a destra, quindi fai clic su " Request". Quando sei lì, dovresti vedere una barra che dice " GET" accanto. Qui inseriremo il nostro URL di richiesta. Basta inserire quanto segue nella sezione URL richiesta e fare clic su " Send".

`http://your-server-ip:3000/api` 

Vedrai " 'API is online'".

Percorsi API

Per gestire i percorsi, utilizzeremo il router Express. Se non sai cos'è un router, è essenzialmente come gli endpoint dell'applicazione rispondono alle richieste del client. Ecco i percorsi che configureremo come esempio:

  • /api/numbers - Mostra tutti i numeri da 1 a 10.

  • /api/letters - Mostra tutte le lettere dalla A alla Z.

Ora imposteremo la nostra struttura middleware per la prima route, in questo modo.

router.use(function(req, res, next) {
   console.log('We've got something.');
   next() //calls next middleware in the application.
});

router.route('/numbers/:number').get((req, res) => {
     res.json({result: req.params.number + 1})
});

In questo esempio, creiamo una situazione in cui un utente può richiedere la somma di un numero + 1 fornendo la forma della parola di esso, usando il metodo GET. Usiamo la router.route()funzione per indicare quale numero vogliamo restituire come risultato. I parametri sono chiamati con un " :" davanti a loro. Accediamo a questi parametri tramite req.params.

Ecco un esempio con le lettere.

   router.route('/letters/:letter').get((req, res) => {
     res.json({result: req.params.letter.toUpperCase()})
});

Usiamo lo stesso metodo di cui sopra, ma restituiamo la lettera in maiuscolo.

Introduzione a NGINX

NGINX è un noto software open source utilizzato per servizi Web, proxy inversi, streaming e altro. Utilizzeremo NGINX per invertire il proxy della nostra API, per consentirci di eseguirlo sulla porta 80, perché Node.js non consente connessioni su porte inferiori a 1024 senza accesso root. Questo può tornare utile quando colleghi il tuo dominio al tuo server.

Configurazione di NGINX

Per iniziare l'installazione di NGINX è necessario eseguire quanto segue nel terminale e attendere il completamento dell'installazione.

sudo apt-get install nginx

Successivamente, vorremmo creare il nostro file del sito che NGINX utilizzerà per invertire la nostra app.

sudo nano /etc/nginx/sites-available-api.js

Popolare il file con il seguente, quindi CTRL+ Oper salvarlo.

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:8080/;
                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;
       }
}

Utilizzando la stessa porta su cui abbiamo eseguito la nostra applicazione in precedenza, stiamo dicendo a Nginx di reindirizzare tutte le richieste dal nostro indirizzo IP sulla porta 80alla nostra API in esecuzione sulla porta 8080.

Quindi, abilitare il proxy inverso collegando in modo simbolico il nostro file appena creato alla sites-availablecartella:

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available

Ciò garantirà che NGINX annullerà il proxy della nostra API.

Prima esecuzione con NGINX

Una volta terminata la nostra configurazione NGINX, avvieremo NGINX, quindi avvieremo la nostra API. Innanzitutto, riavvia NGINX.

sudo systemctl restart nginx

Quindi, tornare alla directory API e avviarlo.

node <filename>.js

L'applicazione verrà eseguita sulla porta 80. Esegui semplicemente il test dall'alto con Postman, per assicurarti che tutto funzioni correttamente.

Mantenere attiva la nostra API

In un ambiente di produzione, si desidera assicurarsi di disporre di un gestore processi per le applicazioni Node, per garantire che rimangano in esecuzione per sempre in background. In questo tutorial, utilizzeremo un gestore di processo chiamato PM2 (Process Manager 2), che è un gestore di processo per le applicazioni Node.js che li manterrà in vita per sempre con tempi di inattività minimi. PM2 viene fornito con molti utili strumenti di gestione, come l'arresto, il ricaricamento, la pausa e altro ancora. Per installare PM2, digitare quanto segue e attendere l'installazione.

sudo npm install pm2 -g

Una volta installato, tutto ciò che devi fare è assicurarti di essere nella directory del progetto, digitare quanto segue e l'applicazione verrà avviata.

pm2 start <filename>.js

Gestire la nostra applicazione con PM2

Come accennato in precedenza, PM2 ha alcuni strumenti utili che è possibile utilizzare per gestire meglio l'applicazione.

  • pm2 stop- Come suggerisce il nome, ciò consente di interrompere l'applicazione attualmente in esecuzione e di terminarne il processo. Se l'applicazione sta producendo un risultato imprevisto, la sua interruzione tornerà utile.

  • pm2 list- La funzione elenco consente di visualizzare tutte le applicazioni attualmente in esecuzione tramite PM2, mappate dai loro nomi. Se è necessario controllare rapidamente i tempi di attività dell'applicazione, è necessario utilizzare questo strumento.

  • pm2 restart- Se la tua applicazione si blocca per qualche motivo e desideri ricaricarla, il riavvio di pm2 fa proprio questo. Ucciderà il processo di applicazione e lo riavvierà, con un processo diverso.

  • pm2 monit- Lo strumento di monitoraggio integrato di PM2 consente di visualizzare un grafico dei dettagli specifici dell'applicazione, come l'utilizzo della CPU / RAM, in un grafico intuitivo in stile ncurses. Questo è utile se desideri un'immagine visiva del carico della tua applicazione.

Osservazioni finali

Ora abbiamo completato il nostro compito di creare un'API RESTful, utilizzando Node.js, Express e invertire il proxy con NGINX. Sentiti libero di espandere questo tutorial. Puoi fare molte cose fantastiche con la tua nuova API, come aggiungere metodi di autenticazione, un database, una migliore gestione del percorso e degli errori e molto altro ancora. Se hai un dominio, con un record "A" già impostato sul tuo indirizzo IP, sarai in grado di accedere alla tua API dal tuo dominio. Per ulteriori informazioni su Express.js, visitare il sito Web http://expressjs.com . Per ulteriori informazioni su NGINX e il proxy inverso, visitare http://nginx.com . Per ulteriori informazioni su PM2, visitare la loro pagina http://pm2.keymetrics.io .



Leave a Comment

Come installare la piattaforma del carrello LiteCart su Ubuntu 16.04

Come installare la piattaforma del carrello LiteCart su Ubuntu 16.04

LiteCart è una piattaforma di carrello degli acquisti gratuita e open source scritta in PHP, jQuery e HTML 5. È un software di e-commerce semplice, leggero e facile da usare

Installa la condivisione NFS su Debian

Installa la condivisione NFS su Debian

NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF

Configurazione iniziale del server sicuro di Ubuntu 18.04

Configurazione iniziale del server sicuro di Ubuntu 18.04

Introduzione Durante questo tutorial imparerai come configurare un livello base di sicurezza su una nuovissima macchina virtuale Vultr VC2 che esegue Ubunt

Installazione di McMyAdmin su Ubuntu 14.10

Installazione di McMyAdmin su Ubuntu 14.10

McMyAdmin è un pannello di controllo del server Minecraft utilizzato per amministrare il tuo server. Sebbene McMyAdmin sia gratuito, ci sono più edizioni, alcune delle quali sono pai

Installa un TeamTalk Server su Linux

Installa un TeamTalk Server su Linux

TeamTalk è un sistema di conferenza che consente agli utenti di avere conversazioni audio / video di alta qualità, chat di testo, trasferire file e condividere schermate. Io

Come installare e configurare CyberPanel sul server CentOS 7

Come installare e configurare CyberPanel sul server CentOS 7

Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa

Come installare e configurare Sensu Monitoring su CentOS 7

Come installare e configurare Sensu Monitoring su CentOS 7

Introduzione Sensu è una soluzione di monitoraggio gratuita e open source che può essere utilizzata per monitorare server, applicazioni e vari servizi di sistema. Sensu i

Installa phpBB con Apache su Ubuntu 16.04

Installa phpBB con Apache su Ubuntu 16.04

PhpBB è un programma di bacheca open source. Questo articolo ti mostrerà come installare phpBB su un server web Apache su Ubuntu 16.04. Era scritto

Installa un utente non root con accesso Sudo su Ubuntu

Installa un utente non root con accesso Sudo su Ubuntu

Avere un solo utente, che è root, può essere pericoloso. Quindi risolviamolo. Vultr ci offre la libertà di fare ciò che vogliamo con i nostri utenti e i nostri server

Come accedere al VPS Vultr

Come accedere al VPS Vultr

Vultr offre diversi modi per accedere al tuo VPS per configurare, installare e utilizzare. Credenziali di accesso Le credenziali di accesso predefinite per il tuo VPS ar

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Usi un sistema diverso? Fuel CMS è un sistema di gestione dei contenuti basato su CodeIgniter. Il suo codice sorgente è ospitato su GitHub. Questa guida ti mostrerà come t

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare Golang 1.8.3 su CentOS 7, Ubuntu 16.04 e Debian 9

Come installare Golang 1.8.3 su CentOS 7, Ubuntu 16.04 e Debian 9

Golang è un linguaggio di programmazione sviluppato da Google. Grazie alla sua versatilità, semplicità e affidabilità, Golang è diventato uno dei più popolari

Come installare OpenMeetings su CentOS 7

Come installare OpenMeetings su CentOS 7

Usi un sistema diverso? Apache OpenMeetings è unapplicazione per conferenze Web open source. È scritto in Java e supporta più server di database. io

Come installare Quassel su Debian 9

Come installare Quassel su Debian 9

IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei in linea, potresti perdere Importan

Come usare Sudo su Debian, CentOS e FreeBSD

Come usare Sudo su Debian, CentOS e FreeBSD

Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud

Come installare RabbitMQ su CentOS 7

Come installare RabbitMQ su CentOS 7

Usando un sistema diverso? RabbitMQ è un broker di messaggi open source ampiamente utilizzato scritto nel linguaggio di programmazione Erlang. Come middleware orientato ai messaggi

Come abilitare TLS 1.3 in Apache su Fedora 30

Come abilitare TLS 1.3 in Apache su Fedora 30

Usi un sistema diverso? TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446

Configurare un Chroot su Debian

Configurare un Chroot su Debian

Questo articolo ti insegnerà come impostare una prigione chroot su Debian. Presumo che tu stia usando Debian 7.x. Se usi Debian 6 o 8, questo potrebbe funzionare, bu

Come installare PiVPN su Debian

Come installare PiVPN su Debian

Introduzione Un modo semplice per configurare un server VPN su Debian è con PiVPN. PiVPN è un programma di installazione e wrapper per OpenVPN. Crea semplici comandi per te t

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.