Node.js — Fondamenti per chi parte da zero

npm · Moduli · Express di base · File system · Node.js 22 · Marco Consiglio
Volta Institute · Napoli
A.A. 2026
🗺️ Cos'è Node.js — JavaScript fuori dal browser
Finora JavaScript (guide JS Basi/DOM/Eventi) è stato usato SOLO dentro il browser, per rendere interattive le pagine web. Node.js è un ambiente che esegue JavaScript FUORI dal browser, direttamente sul computer o su un server — permettendo di scrivere script che leggono file, gestiscono richieste di rete, o eseguono operazioni che il browser non permetterebbe per motivi di sicurezza.
Questo apre le porte a scrivere il "backend" (la logica server-side) di un'applicazione usando lo STESSO linguaggio già usato per il frontend — un vantaggio pratico enorme per chi conosce già JavaScript.
🎯 Da dove si parte: serve conoscere JavaScript di base (variabili, funzioni, oggetti — guide JS Basi/Funzioni/Oggetti). Non serve alcuna conoscenza pregressa di sviluppo server-side o terminale.
⚙️ Installazione e primo script
Node.js va scaricato da nodejs.org e installato come un qualsiasi programma. Una volta installato, il comando node diventa disponibile nel terminale.
// file: ciao.js console.log("Ciao dal terminale, non dal browser!"); const nome = "Marco"; function saluta(persona) { return `Benvenuto, ${persona}!`; } console.log(saluta(nome));
# nel terminale, dalla cartella che contiene ciao.js: node ciao.js
💡 console.log() qui stampa nel TERMINALE, non nella console del browser (F12) — stessa funzione JavaScript già vista, contesto di esecuzione diverso. Questa è la differenza pratica più immediata tra JavaScript "nel browser" e JavaScript "in Node.js".
✅ Checkpoint: esegui node ciao.js — dovresti vedere entrambe le righe stampate nel terminale.
📦 npm — il gestore di pacchetti di Node.js
npm (Node Package Manager) installa librerie JavaScript scritte da altri sviluppatori, pronte da riutilizzare — l'equivalente di Composer già visto nella guida Laravel Fondamenti, ma per l'ecosistema JavaScript/Node.js.
# inizializza un nuovo progetto Node.js, crea il file package.json npm init -y # installa una libreria (es. Express, Passo 6), aggiungendola alle dipendenze del progetto npm install express
// package.json generato — descrive il progetto e le sue dipendenze { "name": "mio-progetto", "version": "1.0.0", "dependencies": { "express": "^4.19.0" } }
⚠️ Dopo npm install, viene creata una cartella node_modules/ contenente il codice effettivo delle librerie — questa cartella NON va mai inclusa in un repository Git (può contenere migliaia di file): basta condividere package.json, e chiunque può ricreare node_modules/ con npm install.
🧩 Moduli — dividere il codice in più file
Come le guide PHP usavano require per includere file (es. config.php), Node.js usa require() o import per condividere codice tra file diversi.
// matematica.js — un modulo che esporta funzioni riutilizzabili function somma(a, b) { return a + b; } function sottrai(a, b) { return a - b; } module.exports = { somma, sottrai };
// app.js — usa le funzioni esportate da matematica.js const { somma, sottrai } = require('./matematica.js'); console.log(somma(5, 3)); // 8 console.log(sottrai(5, 3)); // 2
💡 module.exports = { ... } determina COSA è visibile da altri file quando importano questo modulo — solo somma e sottrai sono accessibili da app.js, qualsiasi altra funzione definita in matematica.js ma non inclusa in module.exports resta privata di quel file.
📁 File system — leggere e scrivere file dal codice
Il browser non permette a JavaScript di leggere liberamente file dal computer per motivi di sicurezza — Node.js invece lo permette, tramite il modulo integrato fs (file system).
const fs = require('fs'); // leggere un file di testo const contenuto = fs.readFileSync('dati.txt', 'utf8'); console.log(contenuto); // scrivere (o sovrascrivere) un file fs.writeFileSync('output.txt', 'Testo generato da Node.js');
💡 require('fs') non richiede npm install: fs è un modulo INTEGRATO in Node.js (come alcune funzioni PHP native già viste, es. file_get_contents()), disponibile automaticamente senza installazione aggiuntiva.
🌐 Express — un piccolo server web
Express è la libreria più diffusa per creare server web con Node.js — concettualmente simile al routes/web.php di Laravel (guida Laravel Fondamenti), ma scritto in JavaScript.
// richiede: npm install express const express = require('express'); const app = express(); app.get('/', (richiesta, risposta) => { risposta.send('Ciao dalla homepage!'); }); app.get('/chi-siamo', (richiesta, risposta) => { risposta.send('Questa è la pagina Chi Siamo.'); }); app.listen(3000, () => { console.log('Server avviato su http://localhost:3000'); });
✅ app.get('/chi-siamo', ...) è l'equivalente diretto di Route::get('/chi-siamo', ...) in Laravel: entrambi dicono "quando arriva questa richiesta GET, esegui questa funzione" — stesso concetto di routing, sintassi diversa a seconda del linguaggio/framework.
💡 app.listen(3000, ...) avvia il server sulla porta 3000: apri http://localhost:3000 nel browser per vedere il risultato — a differenza di php artisan serve (Laravel), qui il file JavaScript stesso ESEGUE il server, senza un comando CLI separato.
🧩 Applicazioni tipiche
TipologiaUso tipico
API RESTBackend che restituisce dati JSON per app mobile o frontend React/Vue
Strumenti da riga di comandoScript che elaborano file, automatizzano compiti ripetitivi (es. rinominare file in batch)
Server real-timeChat, notifiche live, applicazioni collaborative (con librerie aggiuntive come Socket.io)
Build toolNode.js è alla base di strumenti come Gatsby (guida dedicata) o bundler moderni
🎓 Esercitazioni pratiche
1
Modulo di utilità con esportazione multipla
Crea un file stringhe.js che esporta due funzioni (maiuscolo, conta_parole), poi importale in un secondo file e usale su una frase di esempio.
⏱ 20 min📦 2 file .js💻 Individuale
2
Script che legge e scrive file
Crea uno script che legge un file di testo con un elenco di nomi (uno per riga), li converte in maiuscolo, e scrive il risultato in un nuovo file, usando il modulo fs.
⏱ 25 min📦 1 file .js💻 Individuale
3
Mini server Express con 3 rotte
Crea un server Express con tre rotte (home, chi-siamo, contatti), ciascuna che restituisce un messaggio di testo diverso, verificando ognuna nel browser dopo l'avvio con node.
⏱ 25 min📦 1 progetto Node💻 Individuale