Как передать большой XML-ответ от экспресс - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь передать большой 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 начал доставлять контент по мере его прохождения через обратный вызов?

Я изучил вопросов и сообщений, подобных этой , что говорит о том, что мой подход верен, но яя делаю что-то не так, или потоковая передача не работает в экспрессе, возможно, из-за других модулей или промежуточного программного обеспечения.

...