我试图通过名为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()但我没有得到任何结果
答案 0 :(得分:7)
...但我没有得到任何结果
你得到的结果是空的Buffer
,但可能不是你想要的。
事实是:您使用read
方法错误,将其传递回get
方法的回调。方法get
,post
,put
和delete
已经在内部调用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);