learning nodejs 1 - stream.pipe

a simple http server using inner http module.
var http = require('http');
var fs = require('fs');

// 这是一个很有趣的包 require(
'colors'); var server = http.createServer(function(req, res) { if ('GET' == req.method && '/images' == req.url.substr(0, 7) && '.jpg' == req.url.substr(-4)) { console.log(req.url.red); console.log((__dirname + req.url).red); fs.stat(__dirname + req.url, function(err, stat) { if (err || ! stat.isFile()) { res.writeHead(404); res.end('Not found'); return; } serve(__dirname + req.url, 'image/jpg'); }); } else if ('GET' == req.method && '/' == req.url) { serve(__dirname + '/index.html', 'text/html'); } else { res.writeHead(404); res.end('Not found'); } function serve(path, type) { console.log(path.yellow); console.log(type.red); res.writeHead(200, {'Content-Type': type});

// 这个是亮点,流的管道方法,类似C++的 << fs.createReadStream(path).pipe(res); } }).listen(
3000);

 

 

posted @ 2014-01-17 21:50  kylindai  阅读(300)  评论(0编辑  收藏  举报