CONSOLIDAMENTO
Ripasso e percorso di studio
Come affrontare il materiale
- Fondamenti (01–04): esegui script, distingui Node dal browser, conosci
process. - Moduli e I/O (05–07): importa moduli e confronta letture sincrone/asincrone.
- HTTP e runtime (08, 12–15): crea un server, osserva event loop, eventi e stream.
- Progetto e tooling (09–11): usa npm,
package.jsone riavvio automatico. - Express e API (16–23): crea route, JSON, filtri, middleware e testa le richieste.
- CRUD (24–28): completa il progetto finale, poi separa le route.
Errori frequenti da evitare
- Scambiare
req.params.id(una stringa) con un numero senza conversione e validazione. - Credere che
asyncrenda non bloccante un calcolo CPU impegnativo. - Restituire
200quando la risorsa non esiste invece di404. - Dimenticare
express.json()prima delle route che leggono il body JSON. - Pensare che
requireeimportsiano intercambiabili senza configurazione. - Usare percorsi di file relativi senza sapere da quale cartella si avvia il processo.
- Trattare i dati in RAM come se fossero persistenti.
Cinque esercizi progressivi
- Base: modifica il primo script affinché stampi pari o dispari per i numeri da 1 a 20.
- Moduli: crea
calcoli.cjsconsomma()emedia(), importale inmain.cjs. - File: salva un array di appunti in
appunti.json, poi rileggilo tramitenode:fs/promises. - HTTP: aggiungi
/oraal server HTTP e restituisci un timestamp ISO in JSON. - CRUD: aggiungi all’API completa una ricerca per
ruoloed estendi la PATCH perché accetti anche il nome, validando almeno un campo modificabile.
Domande di ripasso con risposta
- Chi esegue il codice della route?
- Node esegue la funzione JavaScript che Express ha selezionato in base a metodo, percorso e ordine dei middleware.
- Perché req.body può essere assente?
- Il parser può mancare, essere registrato troppo tardi, non riconoscere il Content-Type o non avere un body da interpretare.
- Perché una POST scompare dopo un salvataggio?
- Se il watcher riavvia il processo, l’array in RAM viene ricreato. La persistenza richiede un salvataggio esplicito.
- Un await rende il calcolo parallelo?
- No: permette di attendere una Promise senza bloccare la funzione chiamante nello stesso modo di una chiamata sincrona, ma un calcolo pesante sul thread principale resta bloccante.
- Qual è la differenza fra 400 e 404?
- 400 descrive input non valido; 404 una risorsa o route non trovata, secondo il contratto dell’API.
Cosa studiare dopo
Il corso introduttivo termina sostanzialmente con Express Router. Per sviluppare backend reali approfondisci database e SQL, autenticazione, autorizzazione, convalida degli input, test, sicurezza delle API, gestione errori, TypeScript e deploy. Il filmato conclusivo del testo fornito presenta un corso separato a pagamento: non è una lezione tecnica da riassumere come parte delle 28.