Я пытаюсь передать большой XML-файл из Express клиенту, и я еще не выяснил, как отправлять, пока файл не завершит обработку на сервере, и не вызывается res.end ().
Файл xml создается с помощью xmlbuilder-js.У него есть обратный вызов, который получает чанки документов, в которых я пытаюсь отправить, используя response.write (chunk).
res.writeHead(200, {
'Content-Type': 'text/xml',
'Transfer-Encoding': 'chunked'
})
xmlToReturn = xmlBuilder.begin({
writer: {
pretty: true,
}
}, function(chunk) {
res.write(chunk)
}).dec('1.0', 'UTF-8', true)
...
res.end()
Обратный вызов работает, как и ожидалось, он показывает проходящие через чанки данных.
Я пытался:
- изменить тип содержимого в ответе, например, на 'application / octet-stream'
- , используя res.flush () после вызоваres.write () или делать это периодически
- экспериментировать с другими заголовками
Во всех случаях, если я могу получить ответ для отправки, клиент никогда не получит его началодо вызова res.end ().Что мне нужно сделать, чтобы Express начал доставлять контент по мере его прохождения через обратный вызов?
Я изучил вопросов и сообщений, подобных этой , что говорит о том, что мой подход верен, но яя делаю что-то не так, или потоковая передача не работает в экспрессе, возможно, из-за других модулей или промежуточного программного обеспечения.