我有一个最小的 Node.js 服务器,其中网站的图像是从另一个网络服务器加载的。为此,我解析图像/获取并使用库“请求”从另一台服务器请求它。问题是图像不显示。
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'));
});
代码更加复杂,因为不同的路径有不同的获取。只要我请求文本或 html,它就可以正常工作。但图像不显示。
最佳答案
检查您是否从请求中获取了图像。 例如,将其流式传输到文件(来自文档):
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')))
然后确保它是文件。 请求记录错误,可能存在一些问题。
检查下载文件的快速帮助方法:
res.download(path [, filename] [, fn])
关于node.js - 图片未通过node.jsexpress转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652778/