Использование Sharp & Express вызывает исключение: «Входной буфер содержит неподдерживаемый формат изображения» - PullRequest
0 голосов
/ 04 декабря 2018

Я использую Node & Express & Sharp для:

Загрузка изображения в виде потока -> преобразование в webp -> ответ пользователя преобразованным изображением

Этот код выполняет свою работу:

import express   from 'express';
import * as url  from 'url';
const sharp = require('sharp');
var request = require('request');

app.get('*', function (req, res1)
{
    let imgPath = url.resolve('http://localhost', req.originalUrl);

    request({
                url     : imgPath,
                encoding: null
            }, function (err, res, bodyBuffer)
            {
                sharp(bodyBuffer)
                    .webp({quality: 90})
                    .toBuffer()
                    .then((myBuffer) =>
                          {
                              res1.writeHead(200, {'Content-Type': 'image/webp'});
                              res1.end(myBuffer, 'binary');
                          }).catch(error=>console.log(error));;
            });

});

app.listen(app.get('port'), function ()
{
    console.log('app running on port', app.get('port'));
});

Я должен сказать, что код работает (изображение передается через webp), но я получаю исключение после того, как изображение передано:

app running on port 5000
[Error: Input buffer contains unsupported image format]

Вопрос:

Почему я получаю эту ошибку и как ее решить?

NB
Я также пытался предлагаемое решение здесь , без успеха: Cannot pipe, not readable

...