I just tried to add image as buffer to mongodb and tried to convert back to image. In ejs, it worked fine.
src="data:image/png;base64,<%=project.image1.toString('base64')%>"
This is the code i used in ejs.
But when i tried to append this to an element through pure js, it shows error
$('#two').prepend($('<img>',{id:'theImg2',src:`data:image/png;base64,${ selected[0].image2.data.toString('base64')}`}))
This is the code i used in pure js.

This is the object i consoled in js.

This is the error!
Thank you!
There's no .toString('base64') in JavaScript, that exists in Node.js Buffers, so you're just calling .toString on an Object, which will indeed output: [Object Object] which is what you're getting.
The equivalent of Node.js buffer.toString('base64') would be:
function toBase64(arr) {
   //arr = new Uint8Array(arr) if it's an ArrayBuffer
   return btoa(
      arr.reduce((data, byte) => data + String.fromCharCode(byte), '')
   );
}
$('#two').prepend($('<img>',{id:'theImg2',src:`data:image/png;base64,${toBase64( selected[0].image2.data)}`}))
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With