node.js - 图片未通过node.jsexpress转发

标签 node.js express request

我有一个最小的 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/

相关文章:

javascript - 如何在 Node JS 中向 html 页面发送响应?

mysql - 使用 Passport.js 和纯 SQL 查询进行身份验证

mysql - 使用 Express 将多个 SQL 结果返回到 .handlebars

Java:来自同一 HTTPClient 的多个 HTTP 请求?

csv - 使用 NodeJS 从 URL 解析/保存/获取 csv 响应

javascript - 尽管 super 调用, super 类属性仍未定义

node.js - "Object {} has no method ' 尝试将项目添加到 Mongoose 数组时转换为 ' error"

javascript - 带有 JSON 文件的 Express 框架中的 PUG 多次迭代

api - Eventbrite API 列出事件 403

node.js - NodeJS/请求 promise : the promise is resolved automatically