我想在jade中渲染我的json。我发送Json Data但是这会给出这样的错误
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)});
});
});
in Jade Using Jade to iterate JSON我发现这个例子对我没有帮助
each jsonObj in sonuc
li=jsonObj.username
我收到此错误
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 :(得分:2)
我认为你混淆了JSON和javascript对象,基本上你的代码应该是这样的:
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)});
});
要使您的示例正常工作,sonuc
必须是包含用户名字段的对象数组。在javascript对象文字表示法中,这将是一个示例:[{ username : 'a' }]
现在JSON是一种数据交换格式。当你执行JSON.stringify(sonuc)时,你将得到一个表示该数组的字符串。您可以使用返回true的typeof JSON.stringify(sonuc) === 'string'
进行确认。但是在这种情况下我们需要一个对象数组,所以如果它是数组,Array.isArray(sonuc)
应该返回true。
您可以查看此问题:Javascript object Vs JSON