Невозможно преобразовать Uint8 ArrayBuffer (изображения) в буфер base64 для сохранения в базе данных Mon go - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь загрузить изображение с URL (полученного со стороны клиента) на стороне сервера, а затем сохранить его в базе данных mon go.

router.post('/fetchbyurl'), async (req,res) => {
  const mime = require('mime-kind')
  const base64ArrayBuffer = require('base64-arraybuffer')
  resData = await fetch(req.body.url,{ 
    mode: 'no-cors'
    })

  const data = await resData.arrayBuffer() //Uint8 arrayBuffer 
  console.log(mime(data)) //mime: 'image/jpeg'
  const base64str = base64ArrayBuffer.encode(data) //Base64 buffer string

  const arrayBuffer = Buffer.from(base64str) //this is not rendering image.
  console.log(mime(arrayBuffer)) // null
}

Я пытаюсь сделать так:

<img src = "data:image/jpg;base64,arrayBuffer>

Мне нужна помощь, чтобы выяснить, как сохранить это изображение в base64 arraybuf, чтобы я мог сохранить его в mongodb.

1 Ответ

0 голосов
/ 14 апреля 2020

Теперь он работает, все, что я сделал, это изменил строку arrayBuffer следующим образом:

const arrayBuffer = Buffer.from(base64str.toString('ascii'), 'base64');

...