Come funziona Node.js
La tecnologia Node.js introduce delle innovazioni enormi nel campo della tecnologia web, soprattutto perchè riduce la quantità di codice da scrivere e perchè sovverte uno dei dettami delle comunicazioni client-server, ovvero il fatto che Javascript possa eseguirsi solo sui client. Con Node.js, è infatti consentito l’utilizzo server-side del linguaggio in questione, con enormi possibilità sul piano applicativo e pratico.
Di base, Node.js permette di costruire applicazioni basate su un framework asincrono e event-driven, cioè guidato dagli eventi: questo significa che può ad esempio essere aperta una o più connessioni su una porta, e lasciarla in sospeso (cioè senza consumare risorse del server) finchè non avverrà effettivamente la chiamata al servizio – con un click, con una chiamata a funzione o con qualsiasi altro avvenimento, o event, equivalente.
Il vantaggio principale di questo approccio, contrapposto a quello basato su eventi concorrenti o multi-thread (Apache), sta nel fatto che permette di gestire in modo più snello grosse quantità di traffico in arrivo su un sito, un’app o un servizio. In pratica chi ha inventato questa tecnologia aveva in mente di snellire le grosse quantità di richieste che arrivano a grossi picchi periodici, ad esempio, che sono tipicamente difficili da gestire con server classici e che portano a blocchi, errori o rallentamenti di vari ordini e grado.
Tra l’altro, il suo utilizzo non impone l’uso di un singolo processo alla volta: mediante Node.js si possono gestire veri e propri cluster e bilanciare cosଠal meglio le risorse hardware che si hanno a disposizione.
Un esempio pratico
L’esempio classico di Node.js riguarda la facilità con cui si può aprire una connessione HTTP sulla porta 1337, e lasciarla in ascolto per un tempo indeterminato.
const http = require('http'); const hostname = '127.0.0.1'; const port = 1337; http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
A differenza di quanto avviene in PHP, che è un interprete di comando classico (al massimo multi-thread), Node.js permette di sfruttare la compilazione Just-In-Time asincrona basata sugli eventi I/O, con l’ausilio dell’engine V8 di Chrome.
Hosting per Node.js: ancora non troppo diffusi, ma…
Tale innovazione pone – al di là della curva di apprendimento del modello, neanche troppo ripida – un problema di ordine pratico, qualora ci servisse su un servizio di hosting: gli ambienti condivisi ordinari non vanno bene per lo scopo, e quelli più avanzati vanno comunque configurati a dovere. In molti casi le soluzioni di hosting di questo tipo non hanno avuto molto successo e sono sparite dalla circolazione, e soltanto poche (purtroppo) ad oggi sono sopravvissute.
Nonostate tutto, alcuni hosting che danno la possibilità di disporre di Node.js, per la cronaca, sono ad esempio Google Cloud (a pagamento) e Cloudno.de (free).
👇 Da non perdere 👇
- Gratis 🎉
- Informatica 🖥
- Internet 💻
- Lavoro 🔧
- Reti 💻
- 💬 Il nostro canale Telegram: iscriviti
- 🟡 Come gestire le sottoscrizioni con Google Trends
- 🟠 Domini .ws: come e dove registrarne uno
- 🟡 Guida pratica al viral marketing ed ai suoi miti