我有一个最小的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,它就可以正常工作。但是图像没有出现。
答案 0 :(得分:0)
检查您是否从请求中获取图像。 例如,将其流式传输到文件(来自文档):
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')))
然后确保它是文件。 记录请求中的错误,可能存在一些问题。
检查下载文件的明确帮助方法:
res.download(path [, filename] [, fn])