node.js logo
Per chi ancora non ne avesse sentito parlare, Node.js è un framework per l’utilizzo server-side di JavaScript, implementato su un motore JavaScrpit (il V8) scritto da Google.

Secondo gli sviluppatori del progetto, il linguaggio scelto è particolarmente adatto per gestire un web server, perché basato sugli eventi. Christopher Roach, in un suo articolo, sottolinea ad esempio come un server web trascorra la maggior parte del tempo ad aspettare l’esito di operazioni di I/O, quindi la possibilità di lavorare in modo asincrono tramite le funzioni di callback è una grande opportunità per aumentarne l’efficienza.

L’architettura di Node.js è modulare. Vi sono diversi moduli per compiere le funzioni più comuni di un server web. Questi possono essere utilizzati previa inclusione nel codice con il comando require:

1
2
var http = require("http"),  
    sys = require("sys");

Queste due istruzioni includono due moduli: il primo che implementa le funzioni per la comunicazione via HTTP mentre, il secondo, implementa il modulo per la comunicazione via terminale.

A questo punto possiamo creare il server con il metodo createServer, al quale possiamo passare delle funzioni anonime, che si attiveranno ogni qualvolta esso riceverà una richiesta dalla porta passata al metodo listen:

1
2
3
4
5
http.createServer(function(request, response) {  
    response.sendHeader(200, {"Content-Type": "text/html"});  
    response.write("fizban was here!");  
    response.close();  
}).listen(8080);

In questo brevissimo esempio, tratto da un tutorial di Devon Govett, viene creato un server in ascolto sulla porta 8080, che manda una risposta via HTTP con un header e codice HTTP 200.

Come è ormai tradizione consolidata, nei nostri progetti non utilizzeremo direttamente le API di Node.js. L’ecosistema che sta attorno al progetto ha creato una serie di framework che semplificano e velocizzano la scrittura di codice.

express.js è una conoscenza che dovrà fare chi è interessato a scrivere applicazioni webbased. Dalla filosofia molto simile a quella di Rails, express è un framework in sviluppo attivo molto utilizzato.
Fra le caratteristiche principali:

  • Supporto delle route (alla Rails)
  • Basato sulla logica MVC
  • Sviluppato per alte performance
  • Le configurazioni sono basate su ambienti (sviluppo, produzione, test….)
  • E’ dotato di eseguibili per la generazione delle applicazioni in modo veloce

Ecco l’esempio di prima, riscritto utilizzando express:

1
2
3
4
5
6
7
8
var express = require ('express');
var app = express.createServer();

app.get('/', function(req, res){
    res.send('Fizban was here');
});

app.listen(8080);

Express non è l’unico framework attivamente sviluppato, la lista è lunga. Guardando sul wiki di node.js c’è veramente da stupirsi vedendo quanta gente ha già implementato moduli. L’ecosistema che sta attorno al progetto è molto attivo.
Una chicca, vi piace la logica di Ruby on Rails ma non vi piace Ruby? Railswaysjs è modulo che fa per voi

Dove reperire informazioni:

  • Sul sito ufficiale di node.js
  • HowToNode blog con vari howto per realizzare progetti con Node.js

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *