Guida Node.js
Introduzione a Node.js
In questa guida parleremo di Node.js (o semplicemente Node), introducendo alcuni dei concetti chiave, indispensabili per capire il suo funzionamento. Data l'ampiezza e la complessità dei temi che verranno discussi, si tratterà semplicemente di un'introduzione. Per maggiori informazioni e dettagli, si consiglia di consultare la documentazione ufficiale. Nel resto degli articoli faremo riferimento alle versioni v8.x.x, ovvero l'ultima major...
Node.js REPL: cos’è e come usarla
Una volta installato Node.js, possiamo iniziare a usarlo lanciando nella shell il seguente comando:
node
Verrà aperta la REPL (Read-Eval-Print-Loop) e verrà mostrato un nuovo prompt (<). A questo punto possiamo digitare del codice javascript che verrà eseguito dopo aver premuto il tasto INVIO.
Il carattere speciale 'underscore' (_)
La REPL mette a disposizione una variabile speciale identificata dal carattere underscore (_) che...
Node.js Event Loop: cos’è e come funziona
Nela lezione introduttiva abbiamo visto che uno dei componenti fondamentali di Node.js è la libreria multipiattaforma libuv (scritta in linguaggio C) che viene utilizzata per la gestione asincrona delle operazioni di I/O. Per far ciò, libuv implementa un ciclo che prende il nome di Event Loop. In questa lezione cercheremo di capire meglio come funziona e analizzeremo quali sono...
Node.js: moduli, module.exports e funzione require
Dopo aver parlato dell'Event Loop e dell'architettura di Node.js, passiamo ad un altro argomento fondamentale. Prima dell'avvento dei moduli in ES2015, in Node.js era possibile organizzare il codice in moduli usando una sintassi semplice ed intuitiva. (viene utilizzata la sintassi dei moduli CommonJS) I due elementi chiave di questo sistema sono:
La funzione require() che usiamo per importare uno o...
Node.js Event Emitter
Al termine della lezione in cui abbiamo parlato dell'Event Loop, abbiamo introdotto velocemente la 'classe' Event Emitter e abbiamo visto un semplice esempio in cui abbiamo fatto uso del metodo process.nexTick(). Tratteremo di nuovo l'argomento in maniera un po' più approfondita in questa lezione, cercando di capire come funziona un Event Emitter, dal momento che si tratta di uno...
Node.js Buffer: cosa sono e come usarli
In questa lezione su Node.js parleremo degli oggetti di tipo Buffer. Si tratta di un'introduzione all'argomento che necessiterebbe più tempo per essere trattato in maniera esaustiva. Vi consiglio quindi di leggere la documentazione ufficiale che è abbastanza chiara e presenta numerosi esempi.
Node.js Buffer: cos'è?
Quando Node.js è stato creato, ha introdotto alcune funzionalità che non erano disponibili in Javascript. Fra...
Lavorare con i file e il modulo fs in Node.js
In questa lezione della nostra guida a Node.js vedremo come lavorare con file e directory. Per far ciò useremo il modulo nativo fs il quale fornisce un gran numero di metodi per eseguire diversi tipi di operazioni. Come già detto in altre lezioni, non potendo trattare in maniera approfondita tutti gli argomenti, vi rimando alla documentazione ufficiale per maggiori...
Node.js Stream: Cosa sono e perché usarli
In questa lezione parleremo di uno dei concetti fondamentali di Node.js, ovvero gli Stream. Vengono ampliamente usati e permettono fra l'altro di ottimizzare le prestazioni delle applicazioni in cui si lavora con file e socket. Vedremo che gli Stream saranno particolarmente utili quando si lavora con file di grandi dimensioni. Parleremo quindi delle Pipe che useremo insieme agli Stream.
Cosa...
Node.js: l’oggetto global e alcuni moduli nativi
Nel corso di questa lezione faremo una rapida carrellata di alcuni dei moduli più interessanti di Node.js. L'API di Node.js è comunque vasta e ben documentata per cui, non potendo trattare tutti gli argomenti in maniera esaustiva, vi rimando alla documentazione ufficiale per maggiori dettagli e informazioni. Iniziamo a parlare dell'oggetto global e di alcuni dei moduli che abbiamo...
Creare un semplice server TCP in Node.js
In questa lezione della nostra guida a Node.js vedremo come usare il modulo net per creare una semplicissima chat da usare nel terminale. Per far ciò creeremo un banale server e useremo un programma come telnet per collegarci al server creato. Inoltre, utilizzeremo alcuni package esterni che scaricheremo con l'aiuto di NPM.
Per prima cosa creiamo una nuova cartella, ci...
Un semplice server HTTP in Node.js
In questa lezione vedremo come creare un semplice server HTTP usando il modulo omonimo in Node.js. Realizzeremo poi un server HTTPS usando un certificato da noi generato col comando openssl. Illustreremo, inoltre, come sia possibile inviare al client un file JSON e utilizzare gli stream per migliorare le prestazioni del server. Infine vedremo come mostrare pagine differenti al variare...
I processi in Node.js e il modulo cluster
Abbiamo visto nelle precedenti lezioni che Node.js è single-threaded, può eseguire infatti una sola operazione alla volta. Tuttavia, in alcune situazioni è necessario creare nuovi processi per eseguire operazioni più lunghe e complesse. È possibile realizzare applicazioni che usano più processi e che sono quindi in grado di sfruttare al meglio le risorse hardware della macchina su cui girano....
Express: uno dei più popolari web framework per Node.js
In questa lezione parleremo di Express, uno dei più popolari framework per realizzare applicazioni web in Node.js. Iniziamo vedendo immediatamente un esempio in cui usiamo la versione 4 di Express.
Semplice esempio realizzato con Express
Quello che segue è un esempio introduttivo in cui ci limiteremo a definire il comportamento della nostra applicazione per due diversi percorsi. Per la pagina iniziale...
Un Esempio di applicazione Web realizzata con Express
In questa lezione vedremo un esempio di applicazione in Node.js realizzata con Express. Si tratta di un sito web in cui è possibile visualizzare la lista dei calciatori più costosi della storia. Gli utenti registrati potranno aggiungere un nuovo calciatore e scaricare il file in formato JSON contenente la lista aggiornata dei calciatori più costosi di sempre.
Per iniziare, useremo...
Applicazioni Web Real-Time con Socket.io
In questa lezione della nostra guida a Node.js parleremo, attraverso un esempio, di una delle librerie Javascript più interessanti. Si tratta della libreria Socket.io che permette di realizzare in maniera semplice e intuitiva applicazioni web Real-Time, abilitando un canale di comunicazione bidirezionale fra Client e Server. Infatti, Socket.io usa la tecnologia dei WebSocket per tutti i browser compatibili, ripiegando...
Hosting Node.js: possibili soluzioni
In questa lezione finale ci limiteremo a dare uno sguardo ad alcune delle possibili soluzioni hosting per pubblicare le applicazioni web realizzate in Node.js. Ci soffermeremo poi su Now, soluzione hosting di Zeit e mostreremo come usarla attraverso qualche semplice esempio. Sono essenzialmente quattro i motivi per cui vedremo come usare Now invece di altre soluzioni hosting:
Now è ideale...