0

私は現在、MongoDBからの6つの最も古いストーリーの投稿を表示しているホームページを持っています

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つのそれぞれについて、それは完全に正常に機能しますが、これを行うためのより良い/よりクリーンな方法があるかどうか疑問に思っていますか?たとえば、最後の20のストーリーを表示する別のページ'/ all /を実装したいので、テンプレート内にそれらすべてを個別に記述したくないためです。

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 に答える