Я использую сервер экспресс-узла и хочу получать ответ на стороне клиента. но я получаю объединенные данные, например, у меня есть цикл на стороне сервера, и в каждом индексе я делаю res.write (index), как это
for(let index = 0; index <= 10; index+){
res.write(index)
}
но вместо того, чтобы получать один индекс на клиенте каждый раз, когда я получаю ответ, он содержит все предыдущие ответы, также объединенные, например, в первый раз я получаю 1. во второй раз я получаю 12. в третий раз я получаю 123 и так далее. у клиента я получаю подобное
axios.post(url, body, {
onDownloadProgress: progressEvent => {
const dataChunk = progressEvent.currentTarget.response;
//chunky response here
//here i am getting concatenated data
);
},
timeout: 600000
})
.then((response) => {
//final response here
})
Я сделал, но я думаю, что он отправляет окончательный ответ, потому что во второй раз, когда я делаю res.send (index), он говорит, что заголовки не могут быть установлены после того, как res уже был отправлен или что-то в этом роде.
Попробуйте использовать res.flush(index) Подробнее можете прочитать здесь Отправлять данные кусками





Поток сервера может агрегировать фрагменты любым способом, который он считает нужным, и клиент также может их буферизовать, поэтому вы не получите семантику каждого сообщения таким образом. См. Этот вопрос SO, чтобы увидеть, с какими другими проблемами вы можете столкнуться: Как очистить куски произвольного размера в NodeJS
Если вы хотите отправлять клиенту отдельные сообщения, у вас есть несколько вариантов:
socket.io
может попробовать
res.send(index)