2017-10-17 71 views
0

版本信息: 「明示」: 「〜4.15.2」, 「快遞會話」: 「^ 1.15.5」,表達不完整發送響應JSON數據

我使用此代碼發送大型JSON數據客戶端:

router.get('/exportAllData',function(req,res,next){ 
    async function getData(){ 
    let sql="SELECT * FROM int_information " 
    let rows=await query(sql); 
    let data=await JSON.stringify(rows); 
    return JSON.parse(data); 
    } 
    getData().then(data=>res.send({flag:1,data:data})).catch(error=>{ 
    res.send({flag:0,err:error}); 
    }); 
}) 

我試過wget的本地主機上的服務器,可以得到充分的數據, 但遠程客戶端斷了JSON數據和不同的每一次刷新。 問題在哪裏?在獲取所有數據之前似乎已經關閉響應。

+0

你好,Ricky,當你指的是遠程客戶端時,它就像一個生產環境嗎?如在,不是本地主機,你可以有網絡延遲等? 你有另外一個web服務器在express嗎? – lovethebomb

+0

@lovethebomb您好,是的,服務器和遠程客戶端之間存在網絡延遲導致此問題。快遞前沒有任何其他代理。如果我在服務器的同一局域網中使用另一個客戶端,我可以獲得完整數據。 –

回答

0

這是一個在節點js 8.x中的開放式錯誤,我用7.10解決了這個問題。 或者你可以在app.js中設置server.keepAliveTimeout = 30000來延長超時設置