Сохранение изображение с node-libcurl. NodeJS

Нужно сохранить изображение на сервер с помощью node-libcurl. Изображение сохраняется, но не открывается. Полагаю это связано с кодировкой.

const Curl = require('node-libcurl').Curl
const fs = require('fs')

var curl = new Curl()
curl.setOpt( Curl.option.URL, 'http://mirprivet.ru/wp-content/uploads/2016/01/ostrova-portugalii-300x203.jpg' )
curl.perform()
curl.on('end', (statusCode, body, headers) => {
    fs.writeFileSync('image.jpg', body)
})

Ответы (1 шт):

Автор решения: nörbörnën

Через буфер:

const { curly } = require('node-libcurl');
const fs = require('fs');
const path = require('path');

(async () => {
  const { statusCode, data } = await curly.get(
    'http://mirprivet.ru/wp-content/uploads/2016/01/ostrova-portugalii-300x203.jpg'
  );

  fs.writeFileSync(
    path.join(__dirname, './image.jpg'),
    data
  );
})();

Через поток:

const { curly } = require('node-libcurl');
const fs = require('fs');
const path = require('path');
const { pipeline } = require('stream/promises');

(async () => {
  const { data } = await curly.get(
    'http://mirprivet.ru/wp-content/uploads/2016/01/ostrova-portugalii-300x203.jpg',
    {
      curlyStreamResponse: true
    }
  );

  const writableStream = fs.createWriteStream(
    path.join(__dirname, './image2.jpg')
  );
  await pipeline(data, writableStream);
})();
→ Ссылка