2017-05-29 53 views
0

我試圖在Jade中迭代3個對象的json數組以填充一些html(3是任意的,我有一個380+的用戶)。翡翠/帕格迭代數據從服務器是大量的計數

而不是3格,我得到約5000+。如何從Node.js服務器遍歷這個對象,以便在Jade/Pug中正確渲染?我的猜測是,它不是給我數組的長度(3),而是給出了json字符串的長度,使得該數組超過了5000。

我的服務器發送這樣的:

res.render('yourUploads', {fromServer:JSON.stringify(rows[0])}); 

rows[0]是從MySQL數據庫查詢,結果3的結果。

script. 
     var data = !{fromServer}; 
     console.log(data); //prints "(3) [Object, Object, Object]" 
     console.log(data.length); //prints "3" 

    mixin posMixin(uploadData) 
     div #{uploadData} 

body 

    div Welcome to your awesome uploads page 
    div(onclick="window.location='/createNewUpload'") go to your awesome Create New Upload page 

    - for (i = 0; i < fromServer.length; ++i) { //fromServer.length is about 5,000? 
     +posMixin("whateverItTakesToGetThisToWork") //puts 5,000 divs into the dom!!! 
    - } 

正如你可能已經猜到了,我不能完全肯定要放什麼地方"whateverItTakesToGetThisToWork",但我不會感到驚訝,如果它變得相當明顯後,我弄清楚什麼不對的fromServer對象。我原以爲它會是fromSever[i],但產生的輸出非常大,它會使我的機器崩潰。

回答

2

由於您使用JSON.stringify對數據進行了serielize,現在fromServer是一個字符串,也許您不能在帕格中使用JSON方法,只是不要使用JSON.stringify,直接傳遞數據。

+0

這會工作,但擊敗了我要去的整個服務器端渲染。另外,只是讓這個迭代器表現得更好。 –

+0

@GlenPierce我更新了我的答案,問題可能是JSON.stringify –