Сохранение ответа в виде вложений в Nodejs - PullRequest
0 голосов
/ 13 марта 2020

В одном из моих проектов я использую внешний API, который дает ответ в виде «application / zip», и мне нужно отправить тот же ответ клиенту, чтобы ответ мог быть сохранен в файл, а затем пользователь разархивировал его и используй это. Тот же сценарий работает, как и ожидалось от почтальона, однако из кода узла файл создается как поврежденный. Ниже приведен фрагмент кода из моего cntroller, где я извлекаю zip-данные из API

Service.getZipFileContent(userData, key).then(response=> {
            res.setHeader("content-Type", "application/zip; charset=utf-8");
            res.setHeader("content-Length", response.length);
            res.setHeader('Content-Disposition', `attachment; filename=${filename}`);
            res.send(response);
  });

Ответ API, опробованного у почтальона, выглядит следующим образом enter image description here

Я не могу правильно отправить и создать zip-файл.

Ответы [ 3 ]

1 голос
/ 13 марта 2020

Попробуйте использовать другую кодировку, и длина результата может быть неправильной, я думаю, я не понимаю, откуда она. Вы также можете записать файл в локальный экземпляр и отправить путь клиенту.

0 голосов
/ 15 марта 2020

Попробуйте передать запрос с ответом, который вы получаете от метода.

0 голосов
/ 13 марта 2020

В приведенном выше фрагменте измените длину содержимого с result.length на response.length

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