从mongo数据库检索图像[multer express nodejs]

时间:2019-03-12 08:46:13

标签: node.js mongodb express ejs multer

似乎有无数关于如何上传的教程,但没有关于检索的教程。

这是我的架构:

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 :(得分:0)

所以这里的问题是如何在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')%>">