Как получить бинарное изображение для отображения в браузере? - PullRequest
0 голосов
/ 19 апреля 2020

Терминальный вывод

Я пытаюсь получить изображение, хранящееся в моей базе данных mongodb, для извлечения и отображения в браузере. Я уже пробовал некоторые предыдущие решения, такие как btoa, window.btoa, но он говорит, что оба не определены. () ({ ссылка })

Мой текущий код выглядит так:

<img src= <%= `data:${event.eventImage.mimetype};base64,` + Buffer.from(`${event.eventImage.file}`, 'binary').toString('base64') %> >

, что приводит к выводу по ссылке выше. В двоичном файле есть много «/», что, я думаю, не должно быть. Как правильно преобразовать двоичный файл, чтобы мое изображение отображалось?

JSFiddle

1 Ответ

1 голос
/ 19 апреля 2020

В итоге я поступил так, как предложил @Brad. На мой взгляд, я написал:

<img src='http://localhost:3000/public/images/<%=event._id %>' >

Затем я создал маршрут в Nodejs для обработки /images/:id.

router.get('/images/:id', function(req,res){
LCEvent.findById(req.params.id)
    .exec()
    .then(doc =>{
        res.send(doc.eventImage.file);
    })
    .catch(err => console.log(err));
})

В моем случае мой документ был структурирован как

{
     eventImage: { 
        file: Binary {...}, 
        filename: 'dreamlifestyle.jpg', 
        mimetype: 'image/jpeg'
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...