0

我目前有我的主页显示来自 MongoDB 的 6 个最古老的 Stories 帖子

我使用以下来自 Mongo 的查询:

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 个故事,我不想在模板中单独编写它们。

4

1 回答 1

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}
于 2012-11-04T11:09:26.167 回答