JSON

2012-10-09 17 views
14

पुनरावृत्त करने के लिए जेड का उपयोग करके मैं जेएडीई का उपयोग कर एक JSON दस्तावेज़ को पुन: सक्रिय करने की कोशिश कर रहा हूं।JSON

अपने सर्वर (चल Node.js + व्यक्त) एक .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} 

और यह एक रिक्त स्थान प्रदर्शित करता है। जब इसे प्रदर्शित करना चाहिए तो "टीवी" है। अगर कोई मुझे JSON दस्तावेज़ों को पुन: समझने में मदद कर सकता है जो कि कमाल होगा।

धन्यवाद!

उत्तर

28

अपने कोड में आप results सरणी के माध्यम से पुनरावृत्ति नहीं कर रहे हैं, तो आप कुछ इस तरह करना चाहिए करने के लिए कार्य करें:

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

मैं नमूना कोड मैं दे दी है में शामिल करना भूल गया था। लेकिन जब मैंने सर्वर पर JSON.stringify() को हटा दिया तो यह काम करता था। –

+5

यीशु का शुक्र है, आखिरकार, मैं कोड के उस छोटे टुकड़े के लिए घंटों की खोज कर रहा हूं और बकरियों के खून में एक इमारत के पक्ष में "जेड सूक्स" पेंटिंग पर भी विचार कर रहा हूं। यदि आप एक और चेकमार्क चाहते हैं, तो http://stackoverflow.com/questions/20485595/how-do-i-send-on-object-from-mongodb-to-jade। धन्यवाद। – Squirrl