Вы получаете строку из запроса-обещания, а не буфера. Установка кодировки: ноль, даст вам буфер, который вы можете отправить обратно.
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');
});