Подтвердить что ты не робот

Использование Jade для повторения JSON

Я пытаюсь выполнить итерацию JSON-документа с помощью JADE.

мой сервер (работает 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}

и отображает пустое пространство. Когда он должен отображаться, это "tv". Если бы кто-то мог помочь мне понять, что итерационные документы JSON были бы потрясающими.

Спасибо!

4b9b3361

Ответ 1

В вашем коде вы не итерации через массив results, сделайте так, чтобы вы сделали что-то вроде этого:

for result in results
     p #{result.name}