Common Node implements a number of CommonJS proposals on top of Node.js using node-fibers. By emulating multi-threading within a single process, you can now:
var httpclient = require('httpclient'); exports.app = function() { return { status : 200, headers : {}, body: new httpclient .HttpClient({ url: 'http://google.com' }).finish().body }; }
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {}); http.get({ host: 'google.com', port: 80, path: '/'}, function(r) { var chunks = []; r.on('data', function (chunk) { chunks.push(chunk); }); r.on('end', function() { chunks.forEach( function(chunk) { res.write(chunk); }); res.end(); }); }); }).listen(8080);
Install Common Node, check out more examples or read the API reference.
For more background on each module, browse the CommonJS wiki pages:
ByteArray
backed MemoryStream