I moduli in Node.js sono un concetto fondamentale da conoscere per creare applicazioni in Node.js. In questa lezione, scopriremo come creare moduli riutilizzabili per organizzare il nostro codice in modo efficiente e come costruire il nostro primo server HTTP con Node.js.
I moduli in Node.js ci permettono di organizzare il codice in file separati e riutilizzarlo più volte per usare le stesse funzioni o variabili.
Ad esempio, creiamo il file calcoli.js:
// Esporta una funzione per sommare due numeri
exports.somma = (a, b) => a + b;
// Esporta una variabile
exports.PI = 3.1416;
Prova
Si usa la parola chiave exports per esportare funzioni o variabili. È simile a return in JavaScript, che abbiamo visto nella lezione Funzioni: return e variabili.
Nell'esempio di calcoli.js, la funzione somma esegue l'operazione di somma tra due numeri a e b. La variabile PI, invece, contiene semplicemente il valore del pi greco.
Ora creiamo un secondo file, app.js, che per comodità si trova nella stessa cartella di calcoli.js:
// Importa il modulo
const calcoli = require('./calcoli');
// Usa le funzioni/variabili esportate
console.log(calcoli.somma(5, 3)); // Stampa: 8
console.log(calcoli.PI); // Stampa: 3.1416
Prova
Lo script app.js utilizza la funzione somma e la costante PI precedentemente esportati da calcoli.js. Ora eseguiamo il programma:
node app.jsVerranno restituiti i valori della funzione e della variabile, anche se si trovavano in un file diverso.
Node.js include il modulo http predefinito per creare semplici server web. Questo è il modulo più importante e utilizzato di Node.js. In questo modo, possiamo spostarci finalmente dal terminale al browser.
Per creare un server HTTP, possiamo usare questo tipo di codice:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('Ciao! Ecco il primo server Node.js!\n');
});
server.listen(3000);
console.log("Server partito: http://localhost:3000");
Prova
Nel codice che abbiamo scritto:
require('http') carica il modulo http integrato in Node.js, che fornisce funzionalità per creare server e client HTTP.http.createServer() crea un nuovo server HTTP. req è l'oggetto che rappresenta la richiesta del browser, mentre res è usato per inviare una risposta al browser. Vedremo più in dettaglio questi due parametri nella lezione di Express.res.writeHead è 200, come impostato, significa che non sono presenti errori e viene specificato che il contenuto che riceverà il browser come risposta è in codice HTML.res.end() invia il corpo della risposta al browser (in questo caso, una stringa di testo) e termina il processo di invio della risposta.server.listen() avvia il server e specifica la porta del dispositivo da cui sarà accessibile.Avviamo ora il server tramite terminale:
node server.jsOra possiamo aprire il nostro server tramite un browser all'indirizzo http://localhost:3000.