2014-05-23 6 views
1

Je veux rendre mon JSON à jade.I m envoyer des données JSON mais cette erreur donnent comme celui-ciJson Parse dans Jade

 app.get('/showRequestAccepted',function(req,res){ 
     Account.getFriends(req.user,{"friends.status":Status.Accepted},function(err,sonuc)   { 
     if(err) throw err 
     //Json'i formatted göstermek için null ve 4 boşluk için 
     else 
     console.log(sonuc); 
     res.render('profil',{sonuc:JSON.stringify(sonuc)}); 


     }); 

}); 

dans Jade Using Jade to iterate JSON Je trouve cet exemple cela me permet pas

  each jsonObj in sonuc 
      li=jsonObj.username 

Je ne suis pas à obtenir cette erreur

500 TypeError: /Users/ANTEGRUP/Desktop/passport-local-master/views/profil.jade:31 29| 30| div#userlist > 31| each jsonObj in sonuc 32| li=jsonObj.username 33| 34| Cannot read property 'length' of undefined 
+0

Pourquoi stringifier? Vous n'avez pas besoin de stringifier, n'est-ce pas? – Vinz243

+1

Parce que 'sonuc' n'est pas valide json.when je stringifie cette donnée.ses valide. –

Répondre

2

Je pense que vous confondez JSON et javascript objets, essentiellement y notre code devrait être ceci:

app.get('/showRequestAccepted',function(req,res){ 
    Account.getFriends(req.user,{"friends.status":Status.Accepted},function(err,sonuc) { 
    if(err) throw err 
    //Json'i formatted göstermek için null ve 4 boşluk için 
    else 
     console.log(sonuc); 
    res.render('profil',{sonuc: sonuc)}); 
    }); 

Pour votre exemple pour travailler, sonuc doit être tableau d'objets avec le champ de nom d'utilisateur en eux. En notation littérale d'objet javascript ce serait un exemple: [{ username : 'a' }]

Maintenant JSON, est un format d'échange de données. Quand vous faites JSON.stringify (sonuc), vous obtiendrez une chaîne qui représente ce tableau. Vous pouvez confirmer avec typeof JSON.stringify(sonuc) === 'string' qui renvoie true. Mais dans ce cas, nous avons besoin d'un tableau d'objets, donc Array.isArray(sonuc) devrait retourner vrai si c'est un tableau.

Vous pouvez jeter un oeil à cette question: Javascript object Vs JSON

+0

SONUC est returnnig comme celui-ci [{_id: 537dbb21407965a10da84630, statut: 'accepté', ajouté: Thu 22 mai 2014 11:54:33 GMT + 0300 (EET), ami: {_id: 537dbb21407965a10da84630, sel: 'f0e95c9e47178f39ef01ca03fa25ab348feb4bc667755715a2f8da7da71436ec', hachage: '3d44d3ece69a459b4c9356820565658667f3e4690e2fec821f85fe01aa3a810ea7ffa586c7e74d9c7d16f406352f32abc3b1179ec309026b903a3b5b2611be9b55ea72d3679e67ee7e0d7945c16a58b0f6078f239', nom d'utilisateur: 'user4', email: '[email protected]', __v: 0}}, –

+0

En cela, vous devriez changer votre code 'li = jsonObj. friend.username' –

+0

J'ai essayé mais je ne travaille pas donne les mêmes résultats –