Cercai il web e la documentazione per il modulo node.js
express
e sembra che non ci sia modo di inviare dati per parti. Ho un file renderizzato non molto veloce e voglio inviare parti di esso prima che tutto sia reso.Invia dati per parti in node.js express
Così qui sono le mie domande:
- Esiste un metodo su
response
per inviare i dati da parti? - Che cosa significa
response.end()
? - Se non c'è modo di inviare dati per parti: qual è la logica alla base? Direi che sembra più bloccante del non-blocco se è vero. Il browser può caricare le informazioni più velocemente se i dati vengono forniti in precedenza.
Esempio codice semplificato:
app.get(..) {
renderFile(file, function(data) {
response.send(data);
});
response.end();
)
Questo pezzo di codice invia solo il primo blocco di dati. Ho controllato - dati è dato correttamente e il callback è chiamato più di una volta.
Ovviamente posso aggiungere dati a una variabile e quindi scrivere response.send(data);
ma non mi piace questo approccio, non è il modo in cui dovrebbe funzionare.
Si prega di elaborare sulla tubazione e dare un esempio. Ritengo che questo sarebbe molto rilevante per molte persone, in quanto è in realtà una soluzione migliore in molti casi. –
@NielsAbildgaard Non riesco a dare un esempio specifico perché il codice nella domanda non fornisce alcun contesto sulla provenienza dei dati. 'sourceStream.pipe (response)' farà il trucco. – Brad