14

我正在尝试使用 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"}]

我已经阅读了用于迭代数组的翡翠文档,我认为它对于 JSON 是一样的,但它不起作用。它只是显示一个空白区域。当我尝试这个时,

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

它将显示 JSON 文档。但是当我尝试这个时,

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

它显示一个空白区域。应该显示的时间是“tv”。如果有人可以帮助我理解迭代 JSON 文档,那就太棒了。

谢谢!

4

1 回答 1

30

在您的代码中,您没有遍历results数组,因此您应该执行以下操作:

for result in results
     p #{result.name}
于 2012-10-09T06:54:54.020 回答