我正在使用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在最终将其发送到模板之前抓取页面的其余部分。
现在 - 我觉得这是一种可怕的方式。我该怎么做呢?