2017-10-17 7 views
0

La version info: "express": "~ 4.15.2", "express session": "^ 1.15.5",express envoyer des données JSON de réponse incomplète

J'utilise ce code Envoye grand JSON données au client:

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}); 
    }); 
}) 

j'ai essayé wget localhost sur le serveur et peuvent obtenir des données complètes, Mais le client à distance se sont cassées données JSON et différent chaque rafraîchissement du temps. Où est le problème? Semble la réponse fermée avant d'obtenir toutes les données.

+0

Bonjour Ricky, quand vous voulez dire client distant, est-ce un environnement de production? Comme dans, pas localhost, vous pouvez avoir des retards de réseaux, etc? Avez-vous un autre serveur web devant express? – lovethebomb

+0

@lovethebomb Bonjour, oui, il y a un retard réseau entre le serveur et le client distant causé ce problème. Il n'y a pas d'autre proxy devant express. Je peux obtenir des données complètes si j'utilise un autre client dans le même LAN du serveur. –

Répondre

0

Ceci est un bug ouvert dans le nœud js 8.x, j'utilise 7.10 résolu ce problème. Ou vous pouvez définir server.keepAliveTimeout = 30000 dans app.js pour étendre le paramètre de délai