2017-10-17 59 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来延长超时设置