节点.js - 使用 cookie 的多个请求

Node.js - multiple requests with cookies

本文关键字:请求 cookie js 使用 节点      更新时间:2023-09-26

我正在使用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 可以进行身份验证。

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

如果你想在没有执行顺序的情况下并行执行:

async.parallel([
      function(callback) { request(apiCall1Options, callback); },
      function(callback) { request(apiCall2Options, callback); }
  ], function(err, apiCallResults) { console.log(apiCallResults) })

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

也可以通过简单地使用普通回调来完成,我不建议您使用,或者像 Q 或 bluebird 这样的 promise 库。