Ho uno scenario in cui ho bisogno di restituire un oggetto molto grande, convertito in una stringa JSON, dalla mia API RESTful Node.js/Express.Streaming/Piping Output JSON.stringify in Node.js/Express
res.end(JSON.stringify(obj));
Tuttavia, questo non sembra scalare bene. In particolare, funziona perfettamente con la mia macchina di prova con 1-2 client che si connettono, ma ho il sospetto che questa operazione potrebbe uccidere l'utilizzo della CPU della CPU & quando molti client richiedono contemporaneamente oggetti JSON di grandi dimensioni.
Mi sono messo in cerca di una libreria JSON asincrona, ma l'the only one I found sembra avere un problema (in particolare, ho un [RangeError]). Non solo, ma restituisce la stringa in un'unica grande porzione (ad esempio, la richiamata viene chiamata una sola volta con l'intera stringa, il che significa che l'impronta della memoria non viene diminuita).
Quello che voglio veramente è una versione di piping/streaming completamente asincrona della funzione JSON.stringify, in modo che scriva i dati non appena viene impacchettata direttamente nello stream ... risparmiando così sia il footprint di memoria, sia da consumando la CPU in modo sincrono.
si crea un flusso, scrivere l'oggetto come stringa nel vapore, e, infine, solo il tubo del flusso di res. – wayne