json 如何在JavaScript Node.js中将缓冲区数据类型转换为Base64

rjzwgtxy  于 2022-11-19  发布在  Java
关注(0)|答案(2)|浏览(151)

我有这个代码的模型:

// ...
var account = {
    picture: function(account_id, callback) {
        return db.query("SELECT image_profile FROM account_info WHERE account_info_id=?", [account_id], callback);
    }
};
//...

这是用于路由器:

// ...
router.post('/picture/:id?', function(req, res, next) {
    account.picture(req.params.id, function(err, rows) {
        if (err) {
            res.json({ 'success': false });
        } else {
            res.json(rows);
        }
    });
});
// ...

所以输出的JSON格式是这样的:

[
  {
    "image_profile": {
      "type": "Buffer",
      "data": [
        255,
        216,
        255,
        224,
        0,// ... too long cause this is BLOB file from database

如何将JSON上的“数据”转换为Base64?

xeufq47z

xeufq47z1#

我最近得到了这个错误,并解决它从前端。

const profile = {"type": "Buffer", "data": [255, 216, ...]};
const profileStr = JSON.stringify(profile);
const profile64 = new Buffer(profileStr).toString("base64");

// $('#img').attr('src', "data:image/png;base64," + profile64);
kwvwclae

kwvwclae2#

我使用了以下代码,它很有效:

let str = ""
bufferArray.forEach(function(index) {
    str += String.fromCharCode(index)
})
console.log(str)

在您的代码“数据”中:[255,216,255,224,0,..]是缓冲区数组
您可以使用btoa(str)进行编码

相关问题