我目前的工作,抓住内容和数据从不同的Web服务调用快车站点。用于呈现网站超级菜单的网站导航数据来自发送嵌套json结果集的端点,该结果集包含导航部分用于呈现视图的结构hrefs,titles。操纵端点JSON数据快递
这里是一个缩短的例子:
{
"results": [
{
"title": "My Cool Site",
"contents": [
{
"title": "Fruits",
"contents": [
{
"title": "index",
"path": "/my-cool-site/fruits",
"inode": "fc5dba53-b925-4933-869b-e8c68c89e8ab",
"href": "/my-cool-site/fruits/index.html"
},
{
"title": "Apples",
"path": "/my-cool-site/fruits/apples",
"inode": "e67c34bb-9b1a-4c1b-8beb-df986827be27",
"href": "/my-cool-site/fruits/apples.html"
},
{
"title": "Bananas",
"path": "/my-cool-site/fruits/bananas",
"inode": "e67c34bb-9b1a-4c1b-8beb-df986827be27",
"href": "/my-cool-site/fruits/bananas.html"
}
],
"path": "/my-cool-site/fruits",
"inode": "89d90234-f955-4726-9116-a599b8c92138",
"href": "/my-cool-site/fruits"
},
{
"title": "Vegetables",
"contents": [
{
"title": "index",
"path": "/my-cool-site/vegetables",
"inode": "57d1af70-a674-4ec3-965a-7eb0e0da3c75",
"href": "/my-cool-site/vegetables/index.html"
},
{
"title": "Broccoli",
"path": "/my-cool-site/vegetables/broccoli",
"inode": "57d1af70-a674-4ec3-965a-7eb0e0da3c75",
"href": "/my-cool-site/vegetables/broccoli.html"
},
{
"title": "Brussel Sprouts",
"path": "/my-cool-site/vegetables/brussel-sprouts",
"inode": "57d1af70-a674-4ec3-965a-7eb0e0da3c75",
"href": "/my-cool-site/vegetables/brussel-sprouts.html"
},
],
"path": "/my-cool-site/vegetables",
"inode": "89d90234-f955-4726-9116-a599b8c92138",
"href": "/my-cool-site/vegetables"
}
]
}
]
}
服务产生的导航树用于多个站点,所以你可以看到,像“HREF”一些数据:值中包含的上下文路径'/ my-cool-site',我想从导航中删除。例如,当我呈现导航链接,对于苹果的节点应该有一个HREF =“/水果/ apples.html”没有“/my-cool-site/fruits/apples.html”所以,我会怎样无论他们出现在哪里,都要对href值进行替换?
将如何做到这一点的最好方法是什么?在我的控制器/路由中,我正在调用以获取数据,然后将nav对象传递给我的视图。
client.get(navEndPointUrl, function(nav, response) {
res.render('templateName', {
nav: nav
});
});
我是新来的节点/快递,所以我正在寻找最好的方式来处理这个问题的例子。在视图中处理它?将nav对象传递给lodash /下划线函数?对于后者,我是有在草堆中寻找针麻烦时,它可能出现在许多不同的嵌套位置(例如,有些链接可能是下的JSON 4-5嵌套的节点),还需要返回整个json对象,而不仅仅是它的一部分。用某种正则表达式来使用JSON.parse会更好吗?我不知道,我对这个问题感到头痛。
为了记录在案,我预计会有种种这些项目想出这个项目,所以就使之成为一个更广义的解决方案的任何指导,将不胜感激。
我可以想到一些干净的通用方法来做到这一点。你使用的是什么模板引擎? –
我正在使用Dust http://www.dustjs.com/ – nyanMatt