javascript - 在 Node.js 中使用 reSTLer 获取 HTTP 响应

标签 javascript node.js httpresponse restler

我不明白为什么这段代码对我不起作用

var rest = require('restler');

var getResp = function(url){
        var resp ="";
        rest.get(url).on('complete',function(response){
          resp = response.toString();
        });
        return resp;
    };

我没有收到 getResp('google.com') 的响应

我是否遗漏了 reSTLer 的某些内容?

最佳答案

因为您正在返回 resp ,所以您似乎忘记了请求是异步的。而是试试这个:

var rest = require('restler');

var getResp = function(url){
  rest.get(url).on('complete', function(response){
    console.log(response);
  });
};

getResp('http://google.com/');

// output:
// <!doctype html><html itemscope="itemscope" ....

由于其异步性质,您最好将值传递给接收回调。以这个小例子为例:

var rest = require('restler');

// process an array of URLs
['http://google.com/',
'http://facebook.com/'].forEach(function(item) {
  getResp(item);
});

function getResp(url){
  rest.get(url).on('complete', function(response){
    processResponse(response);
  });
};

// data will be a Buffer
function processResponse(data) {
  // converting Buffers to strings is expensive, so I prefer
  // to do it explicitely when required
  var str = data.toString();
}

一旦数据传入,您就可以像传递任何其他变量一样传递它。

关于javascript - 在 Node.js 中使用 reSTLer 获取 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17564255/

相关文章:

javascript - 尝试通过 React 使用 Spotify 推荐时出现 400 错误

node.js - ~/.npm、$PROJECT/node_modules 和/usr/lib/node_modules 之间的区别?

php - 在未处理的请求上发送哪个 HTTP 响应代码

javascript - jQuery 替换 div 内容

javascript - ListJS - 搜索后计算项目数

node.js - TypeORM全局创建连接

gzip - 如何压缩 HTTP 响应?

Django - 是否可以从 View 中的函数进行重定向?

javascript - 如何使用 TinyMCE 编辑器将 javascript 添加到 joomla 1.5 文章中?

node.js - Mongodb:仅当该对象的元素唯一时才将对象插入到数组中