在routes / express路由中使用请求

时间:2013-11-12 13:33:38

标签: node.js express getjson

我正在使用nodejs作为drupal的自定义前端,我正试图想出一种方法来匹配后端菜单系统,块和视图与快速路由。

示例路线

module.exports = {
'/work': function(req, res){
    //get view json for this page
    request('http://site.api/casestudies', function(err, response, body){
        views_body = JSON.parse(body);

        //get node id from alias
        request('http://site.api/alias-to-nid' + req.url, function(err, response, body){
            body = JSON.parse(body);
            var reqUrl = 'http://site.api/rest/api/' + body.path;

            request(reqUrl, function(err, response, body){
                body = JSON.parse(body);
                //get the data we need
                var node_title = body.title,
                    node_body = body.body.und[0].safe_value,
                    pageclass = 'not-front section-work';
                res.render('work', {title: node_title, class:pageclass, node_title:node_title, node_body:node_body, views_body:views_body});
            });
        });
    });
  }
}

所以,我点击/工作并获取该页面上应存在的casestudies视图的json,然后我使用另一个请求从/ work别名查找节点id,最后在另一个嵌套请求调用中使用节点id在最终将其发送到模板之前抓取页面的其余部分。

现在 - 我觉得这是一种可怕的方式。我该怎么做呢?

0 个答案:

没有答案