1
 var parsedUrl = req.body.parsedUrl;
  console.log(parsedUrl);
  var options = {
      url: 'https://api.github.com/repos/' + parsedUrl,
      headers: {
          'User-Agent': 'request'
      }
  };

   var options2 = {
       url: 'https://api.github.com/repos/' + parsedUrl + '/readme',
       headers: {
           'User-Agent': 'request'
       }
   };

 function callback(error, response, body) {
      if (!error && response.statusCode == 200) {
          var info = JSON.parse(body);
          Thing.create(info, function(err, thing) {
            //console.log(info);
            if(err) { return handleError(res, err); }
            return res.json(201, thing);
          });

      } else {
        console.log('github request error');
      }

  }
  request(options, callback);
  request(options2, callback);

基本上,我需要发出两个请求,所以我的问题如下: 1. 如何使用 async 模块异步发出这两个请求。我尝试使用 async.parallel ,但是由于 async.parallel 需要回调,因此该语法与请求的语法不能很好地配合。

2.我怎样才能合并结果?我需要在 Mongo 的同一个对象中同时将它们保存到数据库中。

我希望这是有道理的。谢谢,

4

1 回答 1

1

You can use the async library:

npm install async --save

Create an array with options and options2 and call request on each item in the array:

async.map([options, options2], request, function(err, results) {
  // results[0] is the response for options
  // results[1] is the response for options2
  // you can merge them here and insert into mongodb as one document
});
于 2014-10-28T07:42:32.390 回答