2. Introduction
"Node's goal is to provide an easy way to build
scalable network programs."
Ryan Dahl
●Server-side Javascript
●Built on Google’s V8
●CommonJS module system
●Evented, non-blocking I/O. Similar to EventMachine or
Twisted.
5. Traditional way
var db = require('db');
row = db.query(' SELECT id, name FROM aaa');
row2 = db.query('SELECT id, name WHERE id = '+row.id );
// do your stuff here
console.log( row2.name );
7. Node's first attempt
var db = require('db');
db.query(' SELECT id, name FROM table', function(row){
db.query('SELECT .... WHERE id = '+row.id, function(row2){
// do your stuff here
console.log( row2.name );
});
});
8. Better way
var db = require('db');
frunction get(cb){
db.query('SELECT id, name FROM table', row1);
}
function row1(row, cb){
db.query('SELECT .... WHERE id = '+ row.id, function(row){
cb( row );
});
}
get(function(row){
console.log( row.name );
});
10. speed
var http = require(’http’);
var b = new Buffer(1024*1024);
http.createServer(function(req, res){
res.writeHead(200);
res.end(b);
}).listen(8000);
by Ryan Dahl
11. speed
100 concurrent clients
1 megabyte response
req/sec
node ~800
nginx ~700
thin 85
mongrel 4
(bigger is better)
by Ryan Dahl