Заголовок Content-Length не работает, если для Content-Type установлено значение text / csv в hapi js 16.1 - PullRequest
1 голос
/ 25 февраля 2020

Я использую hapi js 16.1, и когда я пытаюсь загрузить CSV-файл, Content-Length не устанавливается, если для Content-Type установлено значение 'text / csv'

   json2csv({
      data: structuresResponses.data,
      fields
    }, (err, csv) => {
      const stream = new Stream.Readable();
      stream._read = () => {};
      stream.push(csv);
      stream.push(null);
      reply(null, stream).bytes(Buffer.byteLength(csv))
        .header('Content-Type', 'text/csv')
        .header('Content-Disposition', 'attachment; filename=Responses.csv');
    });
  })

Заголовки ответа являются

cache-control: no-cache
Connection: keep-alive
content-disposition: attachment; filename=Responses.csv
content-encoding: gzip
content-type: text/csv; charset=utf-8
Date: Tue, 25 Feb 2020 07:10:25 GMT
Transfer-Encoding: chunked
vary: origin,accept-encoding

Но если я установлю тип контента на application / octet-stream, тогда он будет работать

 reply(null, stream).bytes(Buffer.byteLength(csv))
        .header('Content-Type', 'application/octet-stream')
        .header('Content-Disposition', 'attachment; filename=Responses.csv');

Заголовки ответа:

accept-ranges: bytes
cache-control: no-cache
Connection: keep-alive
content-disposition: attachment; filename=Responses.csv
content-length: 46720000
content-type: application/octet-stream
Date: Tue, 25 Feb 2020 07:06:56 GMT
vary: origin

Я бы будь благодарен за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...