2017-06-17 6 views
0

私は本当に馬鹿なことをしているに違いないが、何かを見つけることができない。私は非常に簡単にMongoDBコレクションに文書をリストしたいと思います。私はnodejs、mongoose、およびJadeを使用しています(私はPugに移動すべきです)、私はすべてを単純なものにしたい、メンテナンスのためにデータを見ることができるようにしています。ここでres.renderで結果を送信すると、重複した行が表示される

は私のヒスイのファイルです:

extends layout 

block content 
    .uk-container(align="center") 
    br 
    table.uk-table(width="100%") 
     thead 
     tr 
      th username 
      th firstlogin 
      th lastlogin 
     tbody 
     #{results} 

これは私のルートである:

router.get('/ListUsers',function(req, res, next) { 
// need to check the validity of the person 
    Account.find({'schema':'toto'}, function(err, user) { 
    if (err) { 
     console.log(err); // we should not have an error, it means db has pb 
    } else { 
     var userList =""; 
     user.forEach(function(record){ 
     userList+="<tr><td>"+record.nomuser+"</td><td>"+record.firstlogin+"</td><td>"+record.lastlogin+"</td></tr>"; 
     })  
     console.log(userList); // it is perfect and if put in the jade shows perfectly well 
     res.render('super_user_list',{results:userList}); 
    } 
    }); 
}); // end ListUsers 

レンダリングが私をバッフル:私は真ん中に持っている一番上の

最初に(いましたconsole.logの結果をJadeに直接入力しても表示されません)

<>> 

どこから来たのかわかりません。そして、私のレコードセットは複製されます。

私は間違っているとは何ですか?私は、追加のjavascriptなどを使わないで簡単なページを望んでいたし、私は解決できない謎を持って自分自身を見つける! :(任意のアイデア、提案説明のため

ありがとう!

+0

テンプレートエンジンを使用しているときに、コード内にHTMLを生成しているのは奇妙なことです。 – robertklep

+0

'forEach'を実行している' user'は配列かオブジェクトですか? –

+0

@robertklepはい私は知っていますが、私はこの速くやっています - 私は思った!私はこれを一度行う必要がある場合に備えて、何が起こっているのか理解したいと思います。 – Pat070

答えて

0

すでにテンプレートエンジンを使用しているので、別途ごルートにHTMLを生成する必要はありません。それはテンプレートエンジンを使用しての全体のポイントです。ここでは何かそれはあなたが達成しようとしているものを達成する必要があり

新しいルートは次のようになります。

router.get('/ListUsers',function(req, res, next) { 
    Account.find({'schema':'toto'}, function(err, user) { 
     if (err) { 
     console.log(err); 
     } else { 
      // pass matched documents to template 
      res.render('super_user_list', { results: user }); 
     } 
    }); 
}); 

をテンプレートファイルは、今、あなたの結果に取り組むことができます。

extends layout 

block content 
    .uk-container(align="center") 
    br 
    table.uk-table(width="100%") 
     thead 
     tr 
      th username 
      th firstlogin 
      th lastlogin 
     tbody 
     each record in results 
     td= record.nomuser 
     td= record.firstlogin 
     td= record.lastlogin 

説明が必要かどうか分かりますか?

+0

はい、これは動作します。値に応じていくつかのセルの色を変更するHTMLを送信できるようにしたいと思いました。私は、クライアントにjavascriptファイルを書かずにこれを行うことを望んでいました。私はまだHtmlが正しいので、私がしたことがうまくいかない理由を理解していません。 – Pat070

+0

それはテンプレートの中に入ってくるので、私はちょうど私を打つ(私の頭が低迷しているres.renderingの日の熱でなければならない)もちろん、私はこのようなHTMLを渡すことはできません。セルの色を変更したいのであれば、私はテンプレットのテンプレートコード(??)を渡す必要があるので、テンプレートに修正が加えられます。たぶん私は戻って、クライアントのJavaScriptを書く、簡単かもしれない。 – Pat070

関連する問題