在node.js中读取缓冲区对象

时间:2014-08-29 12:48:02

标签: javascript node.js

我试图通过名为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 个答案:

答案 0 :(得分:7)

  

...但我没有得到任何结果

你得到的结果是空的Buffer,但可能不是你想要的。

事实是:您使用read方法错误,将其传递回get方法的回调。方法getpostputdelete已经在内部调用read,并在回调中为您返回可读Buffer。请查看get doc

  

get(uri,[options],callback)

     

GET操作的便捷方法。

     
      
  • uri - 请求资源的URI。
  •   
  • options - 包含请求和读取操作设置的可选配置对象。
  •   
  • callback - 使用签名函数(错误,响应,有效负载)的回调函数,其中:   
        
    • 错误 - 处理请求期间可能发生的任何错误。
    •   
    • response - HTTP Incoming Message对象,也是一个可读的流。
    •   
    • 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);