2016-04-06 22 views
0

Bu express uygulamasına, mongoDB ile veritabanı ve benim sunucu tarafı şablonlama motoru olarak gidip geliyor. Uygulamamda AngularJS veya Ajax kullanmıyorum.Node.js: Uygun bir JSON mongoose sorgusundan döndürme

Rotalardan birinde, sayfanın yanı sıra veritabanından bir json dosyası göndermem gerekiyor. Ancak, bunu başaramıyorum. Bunu yakalamak için çalışıyorum, ama ben bile JSON olduğunu sanmıyorum, hbs ise

router.get('/disks', function(req, res, next) { 
    places.find({"category": "disks"}, function(err, disks){ 
     if(err){ 
     throw err; 
     } 

     res.render('disks', 
     { 
      'risime': JSON.stringify(disks) 
     }); 
     console.log(disks); // PROPERLY LOGS TO THE CONSOLE 
    }); 
}); 

:

İşte kod Rotamı pasajı olduğunu. İşte

istemci tarafında kaydedilir alır nasıl:

[{"_id":"5704630a7d4cd367f8dsdce7","name":"Seagate",:"This awesome Hard disk",","categories":["SDD","256GB"]}] 

Ne konudur ve nasıl giderebilirim?

res.type('application/json'); 

istemci bu JSON değil, bir HTML veya düz metin olduğunu bilecek ve doğru gösterilir:

cevap

1

Dizeninizde "html kaçar" (bu normalde istediğinizi).

{{{risime}}} 

Bu buradan okuyabilirsiniz: http://handlebarsjs.com/#html-escaping

+0

HTML kaçış karakterlerini göz ardı etmenin dezavantajları nelerdir? – QuikProBroNa

+0

Güvenlik. Dize güvenilmeyen bir kaynaktan geliyorsa (örn. Kullanıcı girdisi), dize güvenli olmayabilir ve herhangi bir çıkış yapmadan html etiketleri içerebilir ('

0

Sana işlemek önce bu eklemem gerekiyor düşünüyorum.

Umarım cevabım size yardımcı olacaktır.

+0

Um, ama ben de duyuyorum bunu istemiyorsanız

, böyle, "üçlü zula" notasyonu kullanabilirsiniz res.render kullanarak() Bu etkilenmez mi? – QuikProBroNa

+0

Denedim, bu res.render() ile çalışmaz. Sayfamı sadece bir web sayfası yerine düz metin olarak gösteriyor. – QuikProBroNa

İlgili konular