繁体   English   中英

Node.js:将base64编码的图像响应为JSON

[英]Node.js: Responding base64 encoded images into a JSON

我的数据库中有base64中的所有图片,以及额外的数据(创建,喜欢,所有者等)。

我想实现一个/pictures GET ,该/pictures GET返回带有图片数据的JSON,例如:

图片数据

[{
   "creation": 1479567470124,
   "data": "data:image/jpg;base64,R0lGODlhPQ...",
   "ownerId": "cbd4dd05-193c-4e93-8e76-cae055adb046",
   "likes": 23
},
{
   "creation": 1479566234367,
   "data": "data:image/jpg;base64,A0dFSfdsf34SD...",
   "ownerId": "24170e4d-246f-4c77-b493-a56bde870169",
   "likes": 4
}]

api路线

app.get('/pictures', (req, res) => {
    const { last, limit } = req.query;

    db.getPictures(last, limit)
    .then(pictures => res.status(201).jsonp(pictures))
    .catch(err => res.status(500).send(err));
});

问题

问题在于数据字段 (包含base64编码图像的字段)是如此庞大 并且不可能将巨大的json发送到响应中。

我的问题是怎么做...有什么办法吗? 也许在流中? 怎么样?

任何建议都很好😊

注意:图像应以base64编码格式保存到数据库中(公司重新查询)

非常感谢你!

是的,您可以使用流。

本示例使用文件,但很容易使其与其他文件一起使用。

https://www.sitepoint.com/introduction-to-streams/


编辑

不,您不能使用application/json ,您的响应类型应该为arraybuffer 然后,因为您知道数据的方式,所以用json解析器解析响应...

我认为,做您需要的最好的方法是分开响应

构建两个不同的API,第一个API是纯json api,返回图片的所有元数据,第二个API将图像作为流返回。 作业的最后一部分属于需要合并两个响应的客户端。

暂无
暂无

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

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