图像未由node.js表达转发

时间:2015-09-18 13:05:16

标签: node.js express request

我有一个最小的node.js服务器,其中网站的图像是从另一个网络服务器加载的。为此,我解析image / get并使用lib“request”从另一个服务器请求它。问题是,图像没有显示。

var express = require('express');
var app = express();
var request = require('request');

function rootMyWebSideGetImages(req,res)
{
    var urlpart = req.url.replace('/mywebside','');
    var options = {
        url: 'http://otherwebside.net'+urlpart,
    };

    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) 
        {
            res.setHeader('content-type',response.headers['content-type']);
            res.send(body); 
            console.log("get IMAGE: "+options.url);
        }
    });
}

app.get('/mywebside/theme/images*', rootMyWebSideGetImages);

app.listen(app.get('port'), function() 
{
  console.log('Node app is running on port', app.get('port'));
});

代码更复杂,因为不同的pathes有不同的获取。只要我请求文本或HTML,它就可以正常工作。但是图像没有出现。

1 个答案:

答案 0 :(得分:0)

检查您是否从请求中获取图像。 例如,将其流式传输到文件(来自文档):

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')))

然后确保它是文件。 记录请求中的错误,可能存在一些问题。

检查下载文件的明确帮助方法:

res.download(path [, filename] [, fn])