这是我的代码对于单个http get请求的样子。我想要做的是再调用两次http get请求并存储他们的结果,这样我就可以适当地渲染。任何人都可以建议我如何实现它?感谢
router.get('/get_all_posts', function(req, res){
var body ='';
var options = {
host: 'localhost',
path: '/some_endpoint',
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
var request = http.request(options, function(response) {
response.setEncoding('utf8');
response.on('data', function (data_chunk) {
body += data_chunk;
});
response.on('end', function () {
if(response) {
res.render("something");
}
else
{
res.render('error', {error: {status:400,stack:body}});
}
});
});
request.end();
});
答案 0 :(得分:0)
您不应该发出http请求。无论您为/some_endpoint
编写什么代码,都将其转换为函数,然后在路由器中为/some_endpoint
和/get_all_posts
调用该函数。
希望它有所帮助。
答案 1 :(得分:0)
这适合我。
async.map([options1, options2, options3], reqCall, function(err, results){
if ( err){
// do something
} else {
results[0]//first call
results[1]//second call
results[2] //third call
}