【问题标题】:Node.js handling response from http requestNode.js 处理来自 http 请求的响应
【发布时间】:2013-08-11 21:44:56
【问题描述】:

我有一些代码如下:

exports.post = function(request, response) {

  var httpRequest = require('request');
  var uri = "url..";

  httpRequest(uri, function(err, responseHeaders, bodyResponse) {
    var data = JSON.parse(bodyResponse); 
  });

}

我想在 httprequest 之外使用数据,但在exports.post 函数内部。 在我看到的所有示例中,每个人都使用正文进行日志记录,但我想使用数据。

【问题讨论】:

  • 你不能。 exports.post 函数在数据存在时已完成。为什么不能使用httprequest里面的数据?
  • 因为我提出了几个请求,然后我想加入数据..
  • 你可能想要一个像 async 这样的库。

标签: javascript ajax node.js httprequest


【解决方案1】:

如果你想加入请求数据,你可以在这种情况下使用 Promises:

function joinData() {
    var httpRequest = require('request');
    var url1 = 'http://echo.jsontest.com/request/first';
    var url2 = 'http://echo.jsontest.com/request/second';

    var promisedRequest = function (uri) {
        return new Promise(function (resolve, reject) {
            httpRequest(uri, function (err, responseHeaders, bodyResponse) {
                var data = JSON.parse(bodyResponse);
                resolve(data);
            });
        });
    }

    // both requests at the same time
    Promise.all([promisedRequest(url1), promisedRequest(url2)])
        .then(function (responsesArray) {
            console.log(responsesArray);        // <- your responses here
        });
}

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 2022-11-21
    • 2011-02-23
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多