节点js中的多个get请求

时间:2018-05-14 16:30:03

标签: node.js http get httprequest

我在facebook聊天机器人上工作。我必须根据用户的响应发出几个GET请求。现在我立即提出所有请求,因为我不知道如何从请求函数中获取响应。有没有更简单的方法呢?

'use strict';
var https = require('https');

var options = {
    host: 'url.com',
    path: '/path_to_api'
};

var req = https.get(options, function(res) {

var bodyChunks = [];
res.on('data', function(chunk) {
  bodyChunks.push(chunk);
}).on('end', function() {
  var body = Buffer.concat(bodyChunks);
  body = ''+body;
  var json_body = JSON.parse(body);


  var options2 = {
    host: 'url2.com',
    path: '/path_to_api'
};

  var req = https.get(options2, function(res) {

    var bodyChunks = [];
    res.on('data', function(chunk) {
       bodyChunks.push(chunk);
    }).on('end', function() {
      var body = Buffer.concat(bodyChunks);
      body = ''+body;
      var json_body2 = JSON.parse(body);
    })
 });

由于

1 个答案:

答案 0 :(得分:0)

您可以尝试使用request-promise创建一堆请求:

var rp = require('request-promise');
var requests = [
    rp(options), rp(options2), rp(options3) ...
];
Promise.all(requests).then(([restul1, result2, ...allOtherResuts]) => {
    //process ok
}).catch( err => {
   //handle error
})