同步GET请求

时间:2016-08-09 22:11:30

标签: node.js get

我有以下脚本:

var request = require("request");
var slogans = request.get("https://raw.githubusercontent.com/queatech/slogans/master/slogans.txt", function(err, res, body){
    if (!err && res.statusCode == 200) {
        return body.split("\n").splice(-1);
    }
});
console.log(slogans);

我希望脚本的输出为

  

['The Ultimate Q& A Site','The Free Q& A Site','The Idea Q& A Site']

但我得到了长JSON GET查询。有没有办法将变量slogans设置为https://raw.githubusercontent.com/queatech/slogans/master/slogans.txt的GET请求? 这可能吗?

1 个答案:

答案 0 :(得分:0)

根据请求库源代码[1],request.get将返回Request个对象。你真正需要的是回应。

您已将功能传递给request.get来电,它被称为回叫,此功能会接收参数errresbodyres代表响应,检查它以找到您正在寻找的内容。简而言之,body包含您要求的数据。

您只能在回调函数的范围内访问这些变量(errresbody),并且回调函数的主体只能一次执行当您对请求的回复到来时。

无论您在request.get执行后编写的代码是什么,并行执行#34;并且意味着它不会等待您的回复到达。

[1] https://github.com/request/request/blob/master/index.js