繁体   English   中英

在单个Node.js + Express响应中发送图像和JSON数据

[英]Send image and JSON data in single Node.js + Express response

我正在使用Node.js和Express创建一个Web API,并打算使用单个响应来同时返回图像和JSON数据。 我看到了指定标头的解决方案: https : //stackoverflow.com/a/18864738/1703565,但我不想执行两个get请求。 我该如何完成?

您可以将图像编码为base64字符串( http://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end ),并将其作为JSON的一部分返回。

饼干

您可以将图像作为普通图像响应主体返回,然后使用相同的请求设置会话cookie。 会话cookie将包含JSON数据。 加载图片后,您可以通过JavaScript从Cookie中提取JSON数据。

这将适用于所有浏览器。 唯一的限制是您可以返回的JSON的大小。 最大大小看起来是4093字节

图像编码

如果您的JSON太大而无法放入Cookie中,则可以将图像编码为base64对象,然后在JSON响应中返回图像数据。

在这种情况下,您将不得不在画布上重建图像或使用图像数据url格式来动态创建图像对象,就像Kevin注释中的url一样。

图像编码的缺点之一是响应大小的增加。 大致而言,在base64中编码后的图像大小将比原始图像大37%


最终,这取决于您的特定需求,哪种方法最适合您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM