【问题标题】:How to properly serve a dinamic image with Node and Express?如何使用 Node 和 Express 正确提供动态图像?
【发布时间】:2019-07-19 03:17:28
【问题描述】:

我有很多问题要实现我正在尝试的目标:

我想从该 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');
});

【问题讨论】:

标签: node.js express


【解决方案1】:

您从 request-promise 返回一个字符串,而不是缓冲区。设置编码: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');
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多