簡體   English   中英

node.js多個http請求

[英]node.js multiple http requests

我是node和js的新手,並嘗試在express中創建一個網站,在呈現頁面之前進行三次Rest API調用。 目前我有下面的,它返回一些我轉換成對象列表的json。

其中一些屬性只返回id值,我想再運行三個API請求,返回這些Id的查找,這樣我就可以將這些數據作為有意義的值呈現給用戶。

我可以通過運行下一個API調用來同步執行此操作,我當前正在呈現索引頁面,但這看起來非常混亂。 我看到的所有異步教程都讓我的新手思維方式混淆了。 有人可以發布一個易於遵循的異步示例,這有點反映了以下結構嗎?

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);
}

看看這個: https//github.com/JacksonTian/eventproxy 它是一個js lib,可以對事件進行異步調用。 與勾選答案的唯一區別在於它編寫代碼的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM