2013-05-04 34 views
1

我試圖找出一種方法來使this庫與gzip和deflate一起工作。使用zlib庫的Node.js請求

看着this問題,試過了這些建議,但由於某種原因它仍然無法正常工作。我對node.js比較陌生,有人可以看看我的代碼並告訴我我做錯了什麼嗎?

var request = require("request"), 
zlib = require('zlib'); 
var req = request({ 
    uri: "http://google.com", 
    headers: { 
     'Accept-Encoding': 'gzip, deflate', 
     'user-agent': 'Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1', 
     }, 
    }, 
function(error, res, body) { 
    var output; 
    switch (res.headers[ 'content-encoding' ]) { 
     case 'gzip': 
      var gzip = zlib.createGunzip(); 
      res.pipe(gzip); 
      output = gzip; 
     break; 
     case 'deflate': 
      var gzip = zlib.createInflate(); 
      res.pipe(gzip); 
      output = gzip; 
     break; 
     default: 
      res.setEncoding('utf8'); 
      output = res; 
     break; 
    } 
    //console.log(body) // outputs encoded html 
    output.on('data', function (data) { 
     console.log(data); // never happens 
    }); 
    output.on('end', function() { 
     console.log(data); // never happens 
    }); 
}); 

回答

2

解決由:

  1. 更新的node.js〜0.10
  2. 使用第一溶液中描述here