快递发送不完整的回复 json 数据
express send incomplete response json data
版本信息:
"express": "~4.15.2",
"express-session": "^1.15.5",
我使用此代码向客户端发送大量 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 localhost 并且可以获取完整数据,
但是远程客户端得到了损坏的 json 数据并且每次刷新都不同。
问题出在哪里?似乎在获取所有数据之前响应已关闭。
这是node js中的一个未解决的bug 8.x,我用7.10解决了这个问题。
或者你可以在app.js中设置server.keepAliveTimeout=30000来延长超时设置
版本信息: "express": "~4.15.2", "express-session": "^1.15.5",
我使用此代码向客户端发送大量 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 localhost 并且可以获取完整数据, 但是远程客户端得到了损坏的 json 数据并且每次刷新都不同。 问题出在哪里?似乎在获取所有数据之前响应已关闭。
这是node js中的一个未解决的bug 8.x,我用7.10解决了这个问题。 或者你可以在app.js中设置server.keepAliveTimeout=30000来延长超时设置