如何将请求响应传递给另一个请求?

时间:2016-04-22 13:29:40

标签: javascript node.js http express request

在ExpressJS应用程序上使用请求承诺模块,我想提出两个请求,但我需要从第一个请求产生的响应数据,以传递给第二个请求。

我所追求的一个例子是:

const options = {
    url: 'http://api.example.com/v1/token',
    method: 'GET'
};

request(options).then((response) => {
    request({
        url: 'http://api.example.com/v1/user',
        method: 'POST',
        data: { token: response.token } 
    }).then((final_response) => {
        res.send(final_response);
    });
});

我省略了错误处理以保持示例简短。我感兴趣的是将响应从一个请求传递到另一个请求的技术。

1 个答案:

答案 0 :(得分:1)

您可以通过返回承诺来链接承诺。 类似的东西:

request(options1)
  .then((response1) => {
    return request(options2)
  })
  .then((response2) => {
    return request(options3)
  })
  .then((final_response) => {
    res.send(final_response);
  });

这是一篇关于promise chaining and error handling的好文章。