2012-11-04 28 views
0

目前,我有我的主頁上顯示我用下面從蒙戈查詢從MongoDB的快遞/ Dust.js - 數據的視圖陣列

6個古老的故事帖子:

var query = Story 
      .find({maxlines:10}) 
      .sort({_id:1}) 
      .limit(6); 

那我中號以此來將信息傳遞給dust.js

app.get('/', function(req, res){ 
    query.exec(function(err, story) { 
     if (err) console.log(err); 
     res.render('index', { 
     title: 'Test!', 
     storytitle1: story[0].title, 
     storylines1: story[0].lines, 
     storyid1: story[0].sid, 
     storyslug1: slugs(story[0].title), 
     storytitle2: story[1].title, 
     storylines2: story[1].lines, 
     storyid2: story[1].sid, 
     storyslug2: slugs(story[1].title), 
     storytitle3: story[2].title, 
     storylines3: story[2].lines, 
     storyid3: story[2].sid, 
     storyslug3: slugs(story[2].title),  
     storytitle4: story[3].title, 
     storylines4: story[3].lines, 
     storyid4: story[3].sid, 
     storyslug4: slugs(story[3].title), 
     storytitle5: story[4].title, 
     storylines5: story[4].lines, 
     storyid5: story[4].sid, 
     storyslug5: slugs(story[4].title), 
     storytitle6: story[5].title, 
     storylines6: story[5].lines, 
     storyid6: story[5].sid, 
     storyslug6: slugs(story[5].title)  
    }); 
    }); 
}); 

然後在我有下面對.dust模板

<h1 class="title">{storytitle1}</h1> 
     {#storylines1} 
      <ul>{text}</ul> 
     {/storylines1} 

<h1 class="title">{storytitle2}</h1> 
     {#storylines2} 
      <ul>{text}</ul> 
     {/storylines2} 

基本上對於每個6我渲染他們單獨,它的作品完全好,但我想知道是否有更好/更乾淨的方式來做到這一點?因爲我想實現另一個頁面「/ all /」,例如顯示最近的20個故事,我不想在模板中單獨編寫它們。

回答

1

試試這個。

代碼:

app.get('/', function(req, res){ 
    query.exec(function(err, story) { 
     if (err) console.log(err); 
     for (var i = 0; i < story.length; i++) { 
      story[i].slug = slugs(story[i].title); 
     } 
     res.render('index', { 
      title: 'Test!', 
      stories: story 
     }); 
    }); 
}); 

模板:

{#stories} 
    <h1 class="title">{title}</h1> 
     {#lines} 
      <ul>{text}</ul> 
     {/lines} 
{/stories}