2011-10-07 19 views
40

Sunucuda, yeni bir sayfa oluşturulmasına neden olan oldukça ağır bir sorgum var ve istemciye sorgunun bazı sonuçlarını (nesnelerin javascript dizisi olarak) iletmek istiyorum. Bu temelde, daha sonra aynı içeriği (çoğunlukla statik olan) almak için ayrı bir JSON sorgusu yapmak zorunda değilim. Veriler sonunda faydalı olacak, ancak başlangıçta değil, doğrudan belgeye koymadım. ( ). Verilerin tamamını veya bazı alt kümeleri (duruma bağlı olarak) iletmek istiyorum. Benim yeşim Normal yeşim gibi görünüyor, ama (o nesneler dizisi var) BenNesneleri istemciye geçirerek node + express + jade?

<script type="text/javascript"> 
var data = #{data}; 
</script> 

gibi bir şey eklemek istiyorum ama bu işe yaramaz.

cevap

87

Öyle bir JS nesnesi satır içi olamaz, ama daha önce hiç JSON.stringify edebilirsiniz:

Maalesef daha önceki söyledi gerekirdi
+1

<script type="text/javascript"> var data = !{JSON.stringify(data)}; </script> 
: yeşim tüm Ben de bunu okunabilir hale getirmek için şansımız olacağı anlamına gelir içeriği yayılan kaçar ve kaçmayı nasıl kapatacağınız belli değil. Bence ekspres içinde yapmanın bir yolu var, ama nasıl emin değilim. Sadece farklı bir şablon motoruna geçiş yapabilirim ama bu kodun değiştirilmesi anlamına gelir :-(. – killermonkeys

+9

Eğer '! {}' Yerine '# {}' kullanırsanız, kaçış devre dışı bırakılmalıdır. – Adrien

+0

ack! – killermonkeys