web-dev-qa-db-ja.com

Jadeを使用してJSONを反復する

JADEを使用してJSONドキュメントを反復しようとしています。

私のサーバー(node.js + expressを実行)は.get()リクエストで次のことを行っています。

app.get('/search/', function(req,res){

  // Parse the query
  var dbQuery = url.parse(req.url, true).query;
  var product = dbQuery.product;
  var category = dbQuery.category;
  console.log('Searching for: ' + product + ' in ' + category);

  //Mongo DB setup then query
  var result;
  var server = new mongodb.Server('23.23.129.158', 27017, {});
  new mongodb.Db('militaryListDB', server, {}).open(function(err, client){
    if(err) throw err;

    var collection = new mongodb.Collection(client, 'products');
    collection.find({}).toArray(function(err, results){
      console.log(results);
      console.log(JSON.stringify(results));
      res.render('results', {result: JSON.stringify(results), title: 'Test'});
    });
  });
});

これがクライアントにレンダリングしているものです。

[{"_id":"50738ebbe3d87c6beaddb6f2","name":"tv","category":"tech","cost":"30"}]

配列を反復するためのjadeのドキュメントを読み、JSONでも同じだと思いましたが、機能していません。空白を表示しているだけです。これを試してみると、

extends layout
block content
  div#wrapper                 
    p #{results}

jSONドキュメントが表示されます。しかし、これを試してみると、

extends layout
block content
  div#wrapper                 
    p #{results.name}

空白が表示されます。表示されるべき時は「テレビ」です。誰かがJSONドキュメントの反復を理解するのを手伝ってくれるとしたら、それは素晴らしいことです。

ありがとうございました!

14
Collin McGuire

コードでは、results配列を反復処理していないので、次のようにする必要があります。

for result in results
     p #{result.name}
29
c0deNinja