我要实现自己的目标时遇到了许多问题:
我想从此URL http://tapas.clarin.com/tapa/1990/02/22/19900222_thumb.jpg
请求图像,并在视图中显示它,但我正在视图中显示它:
实现我想要的东西的正确方法是什么?
这是我的代码:
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');
});
答案 0 :(得分:1)
您从请求承诺中获取了一个字符串,而不是缓冲区。设置编码为null将为您提供一个缓冲区,您可以将其发送回去。
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');
});