[英]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.