In questa prima fase ci concentreremo su usare Node.js per registrare un utente e poi loggarlo in una pagina web. Per ora salveremo is dati utente in una variabile e la sua durata sarà temporanea. Per fare questo corso delle conoscenze di base di JavaScript sono necessarie.
Riporto una definizione dal sito ufficiale di node:
Come runtime JavaScript guidato da eventi asincroni, Node.js è progettato per creare applicazioni di rete scalabili. Molte connessioni possono essere gestite contemporaneamente. Ad ogni connessione viene chiamata la callback, ma se non c'è nulla da fare, Node.js rimarrà inattivo.
Ciò è in contrasto con il modello di concorrenza più comune di oggi in cui vengono utilizzati i thread. Il networking basato su thread è relativamente inefficiente e molto difficile da utilizzare. Inoltre, gli utenti di Node.js sono liberi da preoccupazioni di blocco permanente del processo, poiché non ci sono blocchi. Quasi nessuna funzione in Node.js esegue direttamente I/O, quindi il processo non blocca mai. Dal momento che nulla si blocca, è molto facile sviluppare sistemi scalabili in Node.js
Node.js è influenzato da sistemi come la Event Machine di Ruby o Twisted di Python. Node.js porta il modello ad eventi un po' oltre. Node.js usa un event loop come costrutto di runtime invece che come una libreria. In altri sistemi, c'è sempre una chiamata di blocco per avviare l'event-loop. In genere il comportamento è definito tramite callback all'inizio di uno script e alla fine avvia un server attraverso una chiamata di blocco come EventMachine::run(). In Node.js non esiste alcuna chiamata per avviare il ciclo. Node.js entra semplicemente nel ciclo degli eventi dopo aver eseguito lo script di input. Node.js esce dal ciclo di eventi quando non ci sono più callback da eseguire. Questo comportamento è simile a JavaScript in browser: il ciclo degli eventi è nascosto all'utente.