Request: Как сохранить загруженные бинарные данные без использования канала

Созданный на 19 янв. 2017  ·  3Комментарии  ·  Источник: request/request

На моем сервере node и попробуйте загрузить изображение png с URL-адреса и записать его в файл:

.get("https://url/for/png/file")
.on('error', function(err) {
  console.log(err)
})
.on('response', function(response){
  console.log(response.statusCode) // 200
  console.log(response.headers['content-type']); // 'image/png'
})
.on('complete', (resp: http.IncomingMessage, body: string | Buffer) => {
  fs.writeFile(".../test.png", body, 'binary');

});

Основная проблема в том, что записанный файл поврежден (не открывается).

Если я использую канал вместо on('complete'...) в конце, записанный файл будет правильным.

.pipe(fs.createWriteStream(".../test.png"))

В чем именно разница и чего мне не хватает, чтобы записать файл?

Самый полезный комментарий

использовать кодировку: нулевая опция

Все 3 Комментарий

Та же проблема.

использовать кодировку: нулевая опция

@lambdacerro Спасибо, тогда закрою этот вопрос.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги