Express è un framework web veloce, semplice e minimalista per Node.js. Scopri a cosa serve e come installarlo.
Cos'è e a cosa serve Express.js
Express.js è un framework open source per Node.js. È stato progettato per creare applicazioni web e API. È un framework dinamico, altamente flessibile, leggero e veloce.
Inoltre è uno dei framework più popolari e più diffusi, consente agli sviluppatori di customizzare l’applicazione e di gestirla attraverso l'utilizzo di rotte e middleware. Fornisce supporto per il pattern MVC per diversi template engine (come ejs, pug e handlebars), per estensioni che ne aumentano le funzionalità e per le operazioni di debug.
In pratica Express.js serve a non reinventare la ruota, riduce gli sprechi di tempo nella gestione e nella codifica delle logiche standard lasciando spazio alle funzioni più o meno complesse che caratterizzano l'applicazione.
Express è anche un componente back-end fondamentale per le applicazioni stack MEAN, MERN e MEVN. Questi tre stack permettono di creare un’applicazione completa (front end, back end, database) utilizzando interamente Javascript e JSON.
L'acronimo MEAN sta per MongoDB, Express, Angularjs e Node. MERN è una variazione che sostituisce Angular con React e MEVN con Vue.
Alternative
Oltre ad Express.js esistono altri framework per lo sviluppo di applicazioni web lato server con Node.js, ecco qualche esempio:
- Adonis
- Koa
- Sails.js
- Next.js con React
Come installare Express.js
Premessa: Express.js richiede Node.js, puoi consultare la guida introduttiva a Node in caso non l’avessi già installato. Segui i seguenti passaggi per procedere con l’installazione di Express.
- Apri il terminale, crea e accedi alla cartella in cui conservare l’applicazione.
$ cd mkdir nuova_cartella
$ cd /nuova_cartella
- Utilizza il comando npm init per creare un file package.json per l’applicazione.
$ npm init -y
-y sta per yes e permette di accettare i valori di default senza dover passare attraverso il processo interattivo.
- Per installare Express.js utilizza il comando seguente:
$ npm install –save express
Se vuoi installare momentaneamente Express e non aggiungerlo all’elenco di dipendenze, ometti –save.
Puoi trovare la documentazione di Express.js sul sito ufficiale o nella repository di GitHub.
Come funziona Express
Express è un framework di routing e middleware; il funzionamento di un’applicazione Express in sostanza si basa su due concetti: rotte e funzioni middleware.
Routing
Quando un utente invia una richiesta dal proprio browser digitando l'indirizzo di un sito Web il browser invia una richiesta HTTP all'applicazione/server.
Il server riceverà la richiesta attraverso una rotta, la elaborerà e invierà una risposta.
Le rotte servono a determinare come un’applicazione risponde a una richiesta, la loro struttura è composta da un metodo di richiesta HTTP specifico (GET, POST, PUT, DELETE e così via), un URI (o percorso) e una o più funzioni che verranno eseguite in corrispondenza della rotta.
Middleware
I middleware sono funzioni che vengono eseguite durante il ciclo richiesta-risposta del server, servono a controllare e filtrare le richieste HTTP che arrivano all'applicazione.
Le funzioni middleware hanno accesso sia alla richiesta che alla risposta e in genere vengono utilizzate per le seguenti attività:
- Eseguire una porzione di codice.
- Apportare modifiche agli oggetti richiesta e risposta.
- Terminare il ciclo richiesta-risposta.
- Chiamare il middleware successivo
Nelle applicazione Express, per chiamare la funzione middleware successiva è necessario utilizzare la funzione next() se non viene inviata una risposta, altrimenti la richiesta verrà lasciata in sospeso.
Un esempio comune dell'utilizzo del middleware è la gestione delle sessioni utente, gli sviluppatori possono utilizzare le funzioni middleware per verificare se un utente è loggato o non loggato.
Tutorial Express.js
In questo tutorial creeremo un semplice server Express.js che ascolterà le richieste in arrivo su http://localhost:3000/ e restituirà una risposta.
Creare un server con Express
Una volta installato Express.js, creiamo un nuovo file "index.js" e iniziamo.
//importiamo express
const express = require("express");
const app = express();
const port = 3000;
//Creiamo una rotta
app.get("/", (req, res, next) => {
//invio risposta
res.send('<h1>Ho creato un server con Express.js</h1>');
});
//Mettiamo il server in ascolto
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
Per avviare il server apri il terminale e digita il seguente comando:
$ node index.js
Congratulazioni, hai appena creato il tuo primo server con Express.js!
Nel terminale dovresti leggere "Server is running on http://localhost:3000". Clicca sul link per inviare la tua prima richiesta al server e per vedere la risposta.