получить изображение из базы данных монго [multer express nodejs] - PullRequest
0 голосов
/ 12 марта 2019

Кажется, есть бесчисленные учебники по загрузке, но нет по извлечению.

Это моя схема:

var bDataSchema = new mongoose.Schema({
    name: String,
    img: {
        data: Buffer,
        contentType: String
    }
});

Моя настройка:

app.use(multer({ storage: storage }).single('photo'));

Мне удалось загрузить изображение в БД, и я пытаюсь отправить эти данные в шаблон ejs следующим образом:

app.get("/b", function(req, res){
    bData.find({}, function(err, found){
       if(err){
          console.log(err);
       }else{
          res.render("b", {found: found});
       }
    });
});

Затем на шаблоне ejs я хочу:

<img src="<%=found.img.data%>">

Также следует указать путь к данным изображения: public/uploads

1 Ответ

0 голосов
/ 12 марта 2019

Поэтому проблема заключалась в том, как вставить буферизованное изображение в тег img.

Для этого ваш тег изображения должен быть таким:

<img src='data:image/(contentType);base64,(buffer).toString("base64")'>, где contentType может быть jpeg / gif / png /.../*, а buffer - это ваше буферизованное изображение.

В ejs это может выглядеть так:

<img src="data:image/<%=found.img.contentType%>;base64,<%=found.img.data.toString('base64')%>">

...