Node.js 文件系統流pipe到Http響應流中

// 內置http模塊,提供了http服務器和客戶端功能(path模塊也是內置模塊,而mime是附加模塊)
var http=require("http");
var fs=require("fs");
var _dirname="./html"

// 建立服務器,建立HTTP服務器要調用http.createServer()函數,它只有一個參數,是個回調函數,服務器每次收到http請求後都會調用這個回調函數。服務器每收到一條http請求,都會用新的request和response對象觸發請求函數。
var server=http.createServer(function(req,resp){
    console.log("請求地址是:"+req.url);    

   if('GET'==req.method && '/images'==req.url.substr(0,7) && '.jpg'==req.url.substr(-4)){
       fs.stat(_dirname+req.url,function(err,stat){
            if(err || !stat.isFile()){
                resp.writeHead(404);
                resp.end('File not found');
                return;
            }

            serve(_dirname+req.url,'application/jpg');
       });
   }else if('GET'==req.method && '/'==req.url){
        serve(_dirname+'/index.html','application/html');
   }else{
        resp.writeHead(404);
        resp.end('Unrecongnized cmd');
        return;
   }

   function serve(path,type){
        // 告訴瀏覽器發送什麼樣的資源
        resp.writeHead(200,{"Content-Type":type});
        fs.createReadStream(path).pipe(resp);
   }
});

// 服務器開始運做監聽端口
server.listen(3000,"localhost",function(){
    console.log("服務器開始運做,監聽端口3000中...");
});
相關文章
相關標籤/搜索