多个http get请求node.js

时间:2015-01-26 17:07:09

标签: node.js asynchronous

这是我的代码对于单个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();
    });

2 个答案:

答案 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
           }