logo logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Biadets Blog

I moduli in Node.js

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.

Creare un Modulo in 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.js

Verranno restituiti i valori della funzione e della variabile, anche se si trovavano in un file diverso.

Costruire il primo server HTTP

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:

  • La funzione require('http') carica il modulo http integrato in Node.js, che fornisce funzionalità per creare server e client HTTP.
  • Il metodo 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.
  • Se 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.js

Ora possiamo aprire il nostro server tramite un browser all'indirizzo http://localhost:3000.

Prova!Completa gli spazi vuoti con il testo appropriato.
// Aggiungi il modulo "http" in Node.js e crea il server
const http = ('http');
const server = http.((req, res) => {
   ...
});

Prova!Scegli l'opzione corretta tra quelle elencate.
// Scegli il metodo corretto per un server Node.js
const server = http.createServer((req, res) => { ... });
server._______(3000);