node.js 多个http请求

标签 node.js asynchronous

我是 node 和 js 的新手,我尝试用 express 创建一个网站,在呈现页面之前进行三个 Rest API 调用。目前我有以下内容,它返回一些我将其转换为对象列表的 json。

其中一些属性只返回 ID 值,我想再运行三个 API 请求返回对这些 ID 的查找,以便我可以将这些数据作为有意义的值呈现给用户。

我可以通过在当前呈现索引页面的位置运行下一个 API 调用来同步执行此操作,但这看起来真的很乱。不过,我看到的所有异步教程都让我的新手思维方式困惑不堪。有人可以发布一个易于理解的异步示例,它在某种程度上反射(reflect)了以下结构吗?

var issues_json = "";
var request = http.request(options, function(response) {
    console.log("statusCode: ", res.statusCode);
    console.log("headers: ", res.headers);

    response.on("data", function(data) {
        issues_json += data;
    });

    response.on("end", function() {
        console.log(issues_json);
        var column_obj = JSON.parse(issues_json);
        res.render('index', {
            title: 'List of Issues',
            response: issues_json,
            objects: column_obj
        });
    });

    response.on("error", function(e) {
        console.log(e.Message);
        res.render('index', {
            title: 'error',
            e: e.Message
        });
    });
});
request.end();

最佳答案

你应该使用 Request

你会得到类似的东西

app.get("/route", function(req, res) {

  var callbackThree = function(error, resp, body) {
    var data = JSON.parse(body);
    res.send({title; "My Title", data: data});
  }

  var callbackTwo = function(error, resp, body) {
    request("api.com/42", callBackThree);
  }

  var callbackOne = function(error, resp, body) {
    request("api.com/things", callBackTwo);
  }

  request("api.com/users", callBackOne);
}

关于node.js 多个http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045894/

相关文章:

javascript - Electron JS - 无法解构 'BrowserWindow' 的属性 'require(...).remote',因为它未定义

node.js - 在 Node.js 中的 for 循环中进行异步操作,而不使用异步库帮助程序类

iphone - 异步回调已解除的 View Controller ?

asynchronous - 从 C# 异步方法返回多个值

c# - ASP.NET页面如何实现异步加载?

javascript - NodeJS - 调用函数和结构

angularjs - JavaScript错误类型错误: Cannot read property 'post' of undefined

node.js - 如何检查 node.js 代码是否符合代码标准

node.js - ES6 和 Node 中的同步和异步回调函数

ios - 长时间运行的异步任务 - 如何在用户可能导航到的任何 View Controller 中接收回调