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.parallel,但是语法不能很好地处理请求的语法,因为async.parallel需要回调。
2.我如何合并结果?我需要在Mongo的同一个对象中同时将它们保存到数据库中。
我希望这是有道理的。 谢谢,
答案 0 :(得分:1)
您可以使用async
库:
npm install async --save
创建一个包含options
和options2
的数组,并在数组中的每个项目上调用request
:
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
});