在node.js web服务器上生成图像后,最简单的显示方法是什么(使用express)

What is the easiest way to display an image once it is generated on a node.js web server (using express)?

本文关键字:方法 显示 最简单 是什么 express 使用 web js node 服务器 图像      更新时间:2023-09-26

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

一旦完成并保存在服务器上,我可以将完成的,处理过的图像返回给客户端的最简单方法是什么?

方法1:从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);

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

方法2:利用公共文件

但是使用express,我认为最好的方法是将生成的图像保存到express的"公共"文件夹中,并直接提供给客户端。

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

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

查看更多信息http://expressjs.com/starter/static-files.html