Introduzione ai moduli di Node.js

I moduli più importanti di Node.js: vediamo quali sono disponibili di default e come possiamo installarne di nuovi con pochi e semplici passi.

Il modulo File System

Il modulo File System

Introduciamo adesso un altro modulo nativo che possiamo considerare tra i più importanti di Node.js: il modulo File System o fs. Com’è deducibile dal suo nome, il modulo permette di leggere e scrivere risorse nel file system del server. Questo modulo può essere utilizzato in combinazione con il modulo Path, che invece si occupa di trattare i percorsi delle directory come stringhe. Come vedremo nel prossimo esempio, possiamo ottenere dei risultati interessanti anche utilizzando il modulo “File System” in modalità stand-alone, senza ricorrere all’aiuto del modulo “Path”. La documentazione ufficiale del modulo “fs” è disponibile qui.

 

Consideriamo il seguente script

 

 

La prima riga (var fs = require('fs')) è quella che carica il modulo “File System”. Il resto del codice dovrebbe essere abbastanza chiaro, perché somiglia a quello visto nelle lezioni precedenti, rispetto alle quali abbiamo introdotto principalmente due novità. La prima è l’uso della variabile globale __dirname, che come abbiamo già detto ritorna la directory corrente di lavoro, ovvero quella dove dovrebbe trovarsi il nostro script. La seconda novità riguarda l’uso della funzione readFile, che va a leggere il file “prova.html” dal disco. In particolare la funzione chiede come argomento una callback che si occuperà di gestire l’esito dell’evento associato alla lettura del file.

Oltre allo script, dobbiamo ovviamente generare un file HTML e chiamarlo “prova.html”: questo file va collocato nella stessa directory dello script Node.js. Il risultato è un mini web-server HTTP. Ad ogni richiesta del browser sull’indirizzo locale (e porta 8080), verrà restituito il codice HTML contenuto del file “prova.html”. In altre parole, se chiamassimo “index.html” il nostro file, avremmo un comportamento quasi identico (lato utente) a quello di un normale web server. Notare che abbiamo ottenuto questo risultato con solo una decina di righe! Prima di concludere citiamo anche il modulo util, che contiene funzioni per la formattazione di date, stringhe, funzionalità di debug e altre utilità, come ad esempio l’introspezione delle variabili. Altri moduli degni di nota sono url e net, che riguardano rispettivamente la gestione degli url e la creazione di connessioni di basso livello, per certi versi simili a quelle di socket.io. Nelle prossime lezioni vedremo come mettere assieme alcuni di questi moduli per realizzare script man mano più interessanti.