Как правильно обслуживать динамическое изображение с помощью Node и Express? - PullRequest
0 голосов
/ 25 февраля 2019

У меня много проблем с достижением того, что я пытаюсь:

Я хочу запросить изображение с этого URL http://tapas.clarin.com/tapa/1990/02/22/19900222_thumb.jpg и показать его в представлении, но я получаю это показано ввместо этого:

enter image description here

Как правильно достичь того, чего я хочу?

Это мой код:

const app = require('express')();
var http = require('http').Server(app);
var rp = require('request-promise');
const fs = require('fs')


var url = 'http://tapas.clarin.com/tapa/1990/02/22/19900222_thumb.jpg'

app.get('/', (req, res) => {
   rp(url)
  .then(image => res.set('Content-Type', 'image/jpeg').send(image))
  .catch(err => res.send(err));
})

http.listen(3000, () => {
  console.log('listening on localhost:3000');
});

1 Ответ

0 голосов
/ 25 февраля 2019

Вы получаете строку из запроса-обещания, а не буфера. Установка кодировки: ноль, даст вам буфер, который вы можете отправить обратно.

const app = require('express')();
var http = require('http').Server(app);
var rp = require('request-promise');


var options = {
    url: 'http://tapas.clarin.com/tapa/1990/02/22/19900222_thumb.jpg',
    encoding: null
}

app.get('/', (req, res) => {
   rp(options)
  .then(image => {
      return res.end(image,'binary');
  })
  .catch(err => res.send(err));
})

http.listen(3000, () => {
  console.log('listening on localhost:3000');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...