1. Un progetto di Ryan Dahl Una presentazione di Eugenio Pombi NetMeansNet s.n.c.
2.
3. $result = mysql_query( 'SELECT * WHERE 1=1' ); //do something Cosa fa apache mentre vengono recuperati i dati in attesa di essere mostrati?
4. Aspetta... E tiene impegnate risorse hardware nell'attesa (RAM e CPU) Apache apre un thread per ogni nuova connessione
5. $result = mysql_query( 'SELECT * WHERE 1=1' ); //do something l'intero processo si blocca durante l'attesa Oppure Multiple execution stacks Questo codice implica che
6. db.query( 'SELECT * WHERE 1=1' , function( result ){ //do something }) ; Questo codice permette di tornare all'event loop liberando le risorse Event Loop Javascript evented programming
8. var sys = require( "util" ), // [...] http, url, path, fs http.createServer( function (request, response) { var uri = url. parse (request. url ). pathname ; var filename = path. join (process. cwd (), uri); path. exists (filename, function (exists) { if(!exists) { response. writeHead ( 404 , { "Content-Type" : "text/plain" }); response. write (" 404 Not Found "); response. end (); return ; } fs. readFile (filename, "binary" , function (err, file) { if(err) { response. writeHead ( 500 , { "Content-Type" : "text/plain" }); response. write (err + "" ); response. end (); return ; } response. writeHead ( 200 ); response. write (file, "binary" ); response. end (); }); }); }). listen ( 8080 ); sys. puts ( "Server running at http://localhost:8081/" );
9. Cosa può fare Leggere cookie Ricevere dati da form Ricevere dati dalla querystring Gestire gli header Uploadare files File streaming P2P (chat e simili) [...] Sistema modulare (npm)
10. Framework Express Geddy TDD ready Expresso nodeUnit Consigli Occhio ai tutorial con codice vecchio ;) response. close () > response. end () var sys = require( "sys" ) > var util = require( "util" ) http://nodetuts.com http://jsconf.eu/2009/video_nodejs_by_ryan_dahl.html