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);