javascript - 一旦在 node.js Web 服务器上生成图像(使用 express),显示图像的最简单方法是什么?

标签 javascript ajax node.js express web

我使用 express 4 框架在 node.js 中创建了一个小型网络服务器。当用户从主网页提交图片文件时,它通过multer中间件上传到服务器,由python脚本处理,然后将生成的图像保存在服务器上。

完成并保存在服务器上后,将完成的、处理过的图像传送回客户端的最简单方法是什么?

最佳答案

方法一:从nodejs流式传输

如果你的意思是将生成的文件流式传输到客户端,你可以这样做

    var fileStream = fs.createReadStream(filename);
    fileStream.on('error', function (error) {
        response.writeHead(404, { "Content-Type": mimetype});
        response.end("file not found");
    });
    fileStream.on('end', function() {
        console.log('sent file ' + filename);
        response.end("");
    });
    fileStream.pipe(response);

作为 mimetype,使用这里的一个 http://www.sitepoint.com/web-foundations/mime-types-complete-list/

方法 2:利用公共(public)文件

但是使用 express,我认为最好的方法是将生成的图像保存到 express 的“公共(public)”文件夹中,然后直接提供给客户。

<img src="server.com/public/generated.jpg">

我特别推荐这种方法,因为当使用带有反向代理(nginx 或类似的)的 nodejs/express 时,您可以将公用文件夹直接提供给客户端,而无需通过 nodejs 堆栈传递请求。

有关更多信息,请参阅此 http://expressjs.com/starter/static-files.html

关于javascript - 一旦在 node.js Web 服务器上生成图像(使用 express),显示图像的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283616/

相关文章:

javascript - 将子组件中的文本字段链接到 VueJS 中父组件的 props

javascript - 在不停止当前页面加载的情况下下载文件的超链接

javascript - 我如何从另一个对象获取数据?

javascript - iOS 的 native 应用程序和网页的 javascript 之间的通信

javascript - 将 Node 变量访问到html文件中

PHP header 不会使用 AJAX 进行重定向

jquery - Ajax TypeError : $. POST 不是函数

javascript - 转到链接与 jquery animate

javascript - Webpack 版本 5.1.2 "MainTemplate.hooks.startup has been removed"出错

javascript - node.js - 在 js 查询字符串中使用 SQL 变量