Federico Lelli / SchoolNode.js & Express
LEZIONE 01 · Fondamenti

Cos’è Node.js

Prima di iniziare: le parole della lezione

Runtime
Ambiente che esegue un programma e gli fornisce servizi: Node.js è il runtime, JavaScript è il linguaggio del codice.
V8
Motore JavaScript usato anche da Chrome: esegue JavaScript e può compilarlo in codice macchina. Il codice non viene prima tradotto in C++.
Frontend e backend
Il frontend è la parte con cui interagisce l’utente, spesso nel browser; il backend gestisce richieste, regole e dati sul server.
API, I/O e thread
API significa interfaccia di programmazione: funzioni e regole con cui usare un componente. I/O significa input/output, come leggere un file o scambiare dati in rete. Un thread è un flusso di esecuzione di istruzioni.
DOM e framework
Il DOM è la rappresentazione della pagina HTML manipolabile dal browser. Un framework è una struttura software che organizza lo sviluppo: Express sarà il framework web di questa guida.

Node.js è un ambiente di esecuzione JavaScript fuori dal browser. Usa il motore V8 e mette a disposizione API lato server: file system, rete, processi e altro. Non è un linguaggio diverso da JavaScript, né un framework web.

console.log('Ciao da Node.js');
console.log('Versione:', process.version);
console.log('Sistema operativo:', process.platform);

Esempio pratico. Un server può avviare la lettura di un file e nel frattempo continuare a gestire altre richieste. Se invece esegue un ciclo CPU molto pesante sul thread principale, le altre richieste possono rallentare.

Chi fa cosa, e perché

Nella metafora della banca del testo, lo sportellista è il thread JavaScript: riceve le richieste e avvia le operazioni. Il lavoro che richiede attesa può essere affidato al sistema operativo o ad altri componenti di Node; quando è pronto, il codice riprende a elaborarne il risultato. Questo permette di servire più utenti senza tenere fermo lo sportello per ogni attesa.

Il server è il programma che offre un servizio; il computer che lo ospita viene spesso chiamato anch’esso server. Il client è il programma che lo contatta, ad esempio un browser. Node può eseguire anche strumenti da terminale, senza creare alcun server. V8 esegue JavaScript, Node fornisce le API, il sistema operativo gestisce risorse come file e rete.

Un altro esempio guidato

// ambiente.cjs — avvio: node ambiente.cjs
console.log('JavaScript:', [1, 2, 3].map(n => n * 2));
console.log('API Node:', process.version);
console.log('DOM disponibile?', typeof document);

Come leggerlo e risultato atteso. La prima riga stampa un array con 2, 4, 6; map trasforma ogni elemento. La seconda legge la versione del runtime. La terza stampa undefined: in un normale script Node non c’è una pagina da manipolare.

Prova tu. Indica chi esegue JavaScript, chi mostra la pagina e chi legge un file dal disco. Risposta: il motore nel runtime, il browser e le API di Node con il sistema operativo.

Torna all’indice ↑

Materiali didattici curati e rielaborati da Federico Lelli. Le fonti e i riferimenti specifici sono indicati nei materiali disponibili.