Node.js - 带cookie的多个请求

时间:2016-01-23 00:07:22

标签: javascript node.js request

我正在使用Node.js构建应用程序。我正在使用request包来发出服务器端GET请求。具体来说,我正在发出使用自定义HTTP标头的请求:

https://www.npmjs.com/package/request#custom-http-headers

该文档显示了如何一次发出一个请求。但是,我需要向两个不同的API发出请求。有谁知道怎么做?我目前提出一个请求的代码:

var cookie = parseCookie.parseCookie(req.headers.cookie);
var cookieText = 'sid='+cookie;
var context;

function callback(error, response, body) {

    var users = JSON.parse(body);
    res.render('../views/users', {
        context: users
    });
}

var options = {
    url: 'http://localhost:3000/api/admin/users/',
    headers: {
        host: 'localhost:3000',
        connection: 'close',
        cookie: cookieText
    }
};

request(options, callback);
//need to make a request to another API.

作为旁注,我需要使用自定义HTTP标头的原因是我可以包含一个cookie,以便我的API可以进行身份​​验证。

1 个答案:

答案 0 :(得分:1)

对于nodejs中的流量控制,我建议您使用async

如果你想并行执行而没有执行顺序:

async.parallel([
      function(callback) { request(apiCall1Options, callback); },

      function(callback) { request(apiCall2Options, callback); }

  ], function(err, apiCallResults) { console.log(apiCallResults) })

如果您需要订购,请使用async.waterfall

也可以通过简单地使用普通回调来完成,我建议你不要使用它,或者使用承诺库,如Q或bluebird。