28

我想读取远程图像并显示它。我可以保存文件,但无法正确显示代码。理想情况下,我只想在不处理的情况下正确传递文件 - 不确定是否需要 tmp 文件步骤。此代码不显示任何内容 - 没有错误。我也尝试了 res.pipe(response) 。

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename

var request = http.get(url, function(response) {

  var tmp = path.join(require('os').tmpDir(), filename);

  var outstream = require('fs').createWriteStream(tmp);

  response.pipe(outstream);
  response.on('end', function() {
    res.set('Content-Type', 'image/jpg');
      res.pipe(outstream);
      res.end();
  });
});
4

2 回答 2

36

好吧,我仍然想知道如何进行上述工作,但我用请求模块解决了我的问题!

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename
require('request').get(url).pipe(res);  // res being Express response
于 2013-08-25T20:44:04.657 回答
5

由于request已弃用,您也可以node-fetch像这样使用:

app.get("/", (req, res) => {
    fetch(actualUrl).then(actual => {
        actual.headers.forEach((v, n) => res.setHeader(n, v));
        actual.body.pipe(res);
    });
});
于 2021-04-07T17:22:26.103 回答