在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 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
相关文章:
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 用HTML在不同屏幕上显示和隐藏内容的方法
- 显示指令时调用指令方法
- Push方法显示错误
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 设置显示后Flash对象方法不可用:无
- 重置transform:rotate(),方法是移除并追加在追加和重绘图表后未显示数据的画布
- 什么'这是用javascript隐藏和显示表中所有行的最快方法
- ng显示“;调用方法“;不起作用
- 使用Ajax Get方法将数据显示到特定元素中
- JS方法显示了未定义的简单示例
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 为什么参数对象没有在控制台中显示它的方法
- 如何通过MVC操作方法显示/隐藏HTML按钮
- 请求方法显示选项而不是开机自检
- 冻结/暂停的方法 显示外汇数据流的 UI 图表
- html/javascript如何用点击按钮的方法显示用户输入
- 是否有任何方法显示工具提示默认(没有悬停饼图)在chartjs
- 如何使用jquery的append方法显示两个javascript变量
- 是否有一个HTML5的方法显示tiff图像数据已经加载到内存