Cos’è Node.js?
Node.js è un ambiente runtime JavaScript (V8 JavaScript engine) e open-source e cross-platform. È progettato per eseguire operazioni di I/O in modo asincrono e non-bloccante.
È possibile costruire applicazioni desktop, servizi software, applicazioni mobile.
Vantaggi:
- Node.js è eseguibile in un singolo processo, senza creare nuovi thread per ogni richiesta.
- Node.js fornisce un insieme di O asincrono che impediscono al codice JavaScript di bloccarsi.
- Node.js evita il problema con un architettura basata su Event Loop e Await.
- Node.js permette di programmare frontend e backend in un singolo linguaggio.
PHP vs Node.js
- PHP:
- Manda task al computer file system;
- Aspetta che il file system apra e legga il file;
- Ritorna il contenuto al client;
- Pronto per accogliere la prossima richiesta.
- Node.js:
- Manda la task al computer file system;
- Pronto per accogliere la prossima richiesta;
- Non appena il file system ha aperto e letto il file, il server ritorna il contenuto al client.
Event Loop
Un ciclo continui che gestisce gli eventi
Callback, Promise, Async/Await
Meccanismi per specificare il codice da eseguire quando un’operazione asincrona termina, mantenendo un flusso logico ordinato senza blocchi.