Node.js è un runtime JavaScript basato sul motore JavaScript V8 di Chrome. Non è né un linguaggio di programmazione né un framework, ma un ambiente che permette di eseguire codice JavaScript al di fuori del browser. Mentre JavaScript è tradizionalmente utilizzato per lo sviluppo front-end, Node.js consente di sviluppare applicazioni web complete, sia front-end che back-end, utilizzando un unico linguaggio di programmazione.
Node.js è costruito sul motore JavaScript V8 di Chrome, sviluppato da Google. Il motore V8, scritto in C++, compila ed esegue JavaScript. Può essere utilizzato autonomamente o incorporato in qualsiasi applicazione C++.
Node.js utilizza un Event Loop a thread singolo per gestire operazioni di input/output (I/O) in modo asincrono e non bloccante. Invece di creare un nuovo thread per ogni richiesta, come fanno i modelli multi-thread, Node.js gestisce tutte le richieste in un singolo thread principale, utilizzando worker threads per operazioni di blocco I/O. L’Event Loop mantiene una coda di eventi, processando ogni richiesta in ordine e delegando le operazioni di blocco ai worker threads.
Node.js è ideale per:
Node.js è particolarmente adatto per applicazioni Web in tempo reale, come chatbot, streaming di dati e applicazioni su singola pagina (SPA).
Per sviluppare applicazioni web lato server, si possono utilizzare:
node -v
nel terminale.brew install node
node -v
.sudo apt install nodejs
nel terminale.node -v
.La versione LTS (Long Term Support) è stabile e sicura, ideale per le applicazioni in produzione. La versione corrente è in sviluppo attivo e riceve nuove funzionalità più frequentemente.
Ecco un esempio pratico per creare un server in Node.js.
// Importiamo il modulo http
const http = require('http');
// Impostiamo una porta
const port = 3000;
// Creiamo un server
const server = http.createServer((req, res) => {
console.log(req); // Visualizziamo la richiesta in console
res.setHeader('Content-type', 'text/html'); // Impostiamo il tipo di contenuto
res.write('<h1>Ho creato un server con Node.js</h1>'); // Scriviamo la risposta
res.end(); // Terminiamo la risposta
});
// Mettiamo il server in ascolto sulla porta specificata
server.listen(port, () => {
console.log(`Server is running on port:${port}`); // Confermiamo che il server è in funzione
});
Per avviare il server:
app.js
.node app.js
.http://localhost:3000/
nel browser per vedere la risposta del server.Congratulazioni, hai creato il tuo primo server in Node.js!
Node.js è una potente piattaforma per lo sviluppo di applicazioni web, con una vasta community e molte risorse disponibili. Che tu stia costruendo un semplice server o una complessa applicazione in tempo reale, Node.js offre gli strumenti e la flessibilità necessari per portare a termine il lavoro in modo efficiente. Buon coding!