簡體   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