2014-08-29 133 views
5

我試圖通過所謂Wreck讀緩衝區對象

它應該是很容易得到的數據這個節點模塊獲取的HTML頁面,但我不能讓他們

'use strict'; 

var Wreck = require('wreck'); 

var url = 'http://www.google.it'; 

var callback = function(err, response, payload){ 
    Wreck.read(response, null, function(err, body){ 
     //here print out the html page 
    }); 
}; 

Wreck.get(url, callback); 

上面是一個簡單的腳本,只是開發人員的自述文件的副本。根據文檔body應該返回一個緩衝區對象,但我怎樣才能讀取一個body對象?我已閱讀使用的toJSON或的toString(),但我沒有得到任何結果

+1

你能告訴我們什麼確切的代碼你做的'read'使用回調,它打印什麼?發生錯誤了嗎? – Bergi 2014-08-29 14:14:32

回答

5

...但我沒有得到任何結果

你得到一個結果,一個空Buffer ,但它可能不是你想要的。

事實是:您正在使用read方法錯誤,將其傳遞給get方法的回調。方法get,post,putdelete已經呼叫read內部並在回調中爲您返回可讀的Buffer。看看在getdoc

GET(URI,[選項],回調)

爲GET操作時的便利方法。

  • uri - 請求的資源的URI。
  • options - 可選配置對象,包含請求和讀取操作的設置。
  • 回調 - 使用簽名功能(ERR,響應,有效載荷)的回調函數,其中:
    • ERR - 可處理請求的過程中可能出現的任何錯誤。
    • 響應 - HTTP傳入消息對象,它也是可讀流。
    • payload - 以Buffer或(可選)解析的JavaScript對象(JSON)形式的有效內容。

因此,使用get方法是非常簡單的(使用自己的例子):

var callback = function(err, response, payload){ 
    console.log(payload.toString()); // converting the buffer to a string and logging 
}; 

Wreck.get(url, callback);