- ExpressJS
- Fastify
- Differenze e scopi dei framework
- Analisi dei requisiti funzionali
- Stesura delle specifiche
- Approccio funzionale con callback
- Approccio Object-Oriented con il pattern MVC
- Approccio misto
- Installazione e configurazione di Docker
- Installazione e configurazione di una VM con Virtualbox
- Installazione e configurazione di Git
- Struttura dei file e delle directory dell'applicazione
- Uso delle variabili d'ambiente
- Modalità di sviluppo e modalità di produzione
- Uso di npm e nodemon
- Uso di pm2
- Uso di systemd su Linux
- Installazione e configurazione del database
- Attivazione e configurazione di servizi di terze parti
- Installazione e configurazione dei moduli NPM
- Installazione e configurazione di Postman
- Routing e percorsi
- Il paradigma REST
- Risposte e codici di stato HTTP
- Formati di risposta
- Header HTTP
- Sessioni e cookie
- Autenticazione HTTP
- Richieste POST
- Upload di file
- Parametri GET e query string
- Route parametriche
- Ordine e priorità delle route
- Organizzazione delle route
- Route asincrone con async
- View e linguaggi di templating
- EJS
- Handlebars
- Pug
- Twig
- File CSS e JavaScript
- Ottimizzazione delle immagini
- Ridimensionamento delle immagini
- Caching
- Uso di una CDN
- Database relazionali: MySQL e SQLite
- Database non relazionali: MongoDB
- Criteri di scelta del database
- Query asincrone
- Caching delle query
- Uso di un modulo ORM
- Integrazione di API remote
- Web Services
- Installazione su Windows
- Installazione su macOS
- Installazione su Linux
- Installazione con NVM
- Installazione con Docker
- Configurazione su Windows
- Usare NPM
- Callbacks
- Promise
- Modello async/await
- Event Loop
- Single-threaded e multi-threaded: uno sguardo a libuv
- CommonJS e require
- ESM e import
- Migrare da CommonJS a ESM
- HTTP e HTTPS
- DNS
- FTP
- TCP e UDP
- SMTP
- WebSocket
- Leggere file e directory
- Creare file e directory
- Eliminare file e directory
- Usare i buffer
- Usare gli stream e il piping
- Metodi sincroni e asincroni: non bloccare l'Event Loop
- Crittografia
- TLS/SSL
- Il comando node
- Lettura degli argomenti da riga di comando