Gli eventi in NodeJS
Gli eventi di javascript lato server con node, a differenza degli eventi javascript lato browser, non sono eventi generati dall'interazione dell'utente con la pagina (poiché non abbiamo un DOM), ma sono eventi legati ad esempio all'accesso al file system, alla ricezione di richieste HTTP, alla gestione degli stream ecc...
La caratteristica principale di node e delle applicazioni node è di operare in modo asincrono; il risultato di un operazione asincrona a differenza delle operazioni sincrone non è immediatamente disponibile, ma lo sarà in un certo momento nel futuro. Ad esempio se facciamo una richiesta asincrona ad una API esterna, servirà del tempo affinche il server restituisca una risposta ed in node possiamo gestire questo meccanismo attraverso gli eventi.
Come funzionano gli eventi in node?
In node abbiamo una coda degli eventi in cui vengono inseriti tutti gli eventi ed un evento loop il cui compito è controllare e gestire questa coda.
Se ad esempio, viene effettuata una richiesta HTTP ad una nostra applicazione node, quello è un evento e vuol dire che è successo qualcosa nell'applicazione e se succede qualcosa nell'applicazione e se succede qualcosa nella nostra applicazione dobbiamo ovviamente gestire quella accadimento, quell'evento.
Tipo di eventi in node
Ci sono due "tipologie" di eventi in node, quelli che vengono sollevati automaticamente da node e quelli che vengono sollevati e gestiti da noi.