Giorno 39 del mio percorso di apprendimento dello stack MERN
Sono al giorno 39 del mio percorso con lo stack MERN.
Ieri ho studiato i verbi HTTP come GET e POST. Oggi mi sono concentrato sulle operazioni backend. Ho studiato come i server gestiscono gli stream di dati e il body parsing.
Quando un utente invia un modulo o un file, il server non lo riceve tutto in una volta. I dati arrivano in piccoli pezzi. Questi pezzi vengono chiamati chunk.
Node.js utilizza gli stream per risparmiare memoria. Non carica immediatamente un file di grandi dimensioni nella memoria del server. Invece, gestisce i dati in piccole parti.
Ecco come funziona il processo:
- I dati POST in arrivo agiscono come un Readable Stream.
- Il server riceve piccoli chunk di dati binari.
- È necessario raccogliere questi chunk prima di utilizzare i dati.
In Node.js, non si ottiene un body della richiesta istantaneo. Si ascoltano eventi di rete specifici:
- req.on("data"): Questo evento viene attivato ogni volta che arriva un nuovo chunk. Si salvano questi chunk in un array.
- req.on("end"): Questo evento viene attivato quando lo stream termina. Questo indica che tutti i dati sono arrivati.
Si utilizza Buffer.concat per unire i pezzi. Successivamente, si convertono in una stringa.
Questo metodo mantiene il server veloce ed efficiente. Previene i crash di memoria quando si gestiscono file di grandi dimensioni.
Fonte: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp