2012-10-09 11 views
14

Ich versuche, ein JSON-Dokument mit JADE zu iterieren.Mit Jade Iteration JSON

meinem Server (läuft node.js + Express) die folgenden auf einem .get() Anfrage tut,

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'}); 
    }); 
    }); 
}); 

und das ist, was es an den Client zu machen.

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

Ich habe für Iterieren ein Array über die Jade-Dokumentation lesen, und ich dachte, dass es das gleiche für JSON sein würde, aber es funktioniert nicht. Es wird nur ein Leerzeichen angezeigt. Wenn ich dies versuche,

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

wird es die JSON doc anzeigen. Aber wenn ich das versuche,

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

und es zeigt eine Leerstelle. Wenn es angezeigt werden soll, ist "TV". Wenn mir jemand helfen könnte, JSON-Dokumente zu wiederholen, wäre das großartig.

Vielen Dank!

Antwort

28

In Ihrem Code Sie iterieren nicht durch die results Array, tun, um so sollten Sie etwas tun:

for result in results 
    p #{result.name} 
+1

ich dies in dem Beispielcode enthalten vergaß ich gegeben habe. Aber als ich JSON.stringify() auf der Serverseite wegnahm, funktionierte es. –

+5

Dank Jesus, endlich, habe ich stundenlang nach dem kleinen Code gesucht und sogar an einem Gebäude aus Ziegenblut "JADE SUCKS" gemalt. Wenn Sie ein anderes Häkchen haben möchten, http://stackoverflow.com/questions/20485595/how-doi-send-on-object-from-mongodb-to-jade. DANKE. – Squirrl