如何使用Node JS中的Mustache在MongoDB中显示存储为二进制数据的图像

时间:2017-04-10 15:01:06

标签: node.js mongodb mustache

我有一个存储在MongoDB中的图像(png)文件作为二进制数据。我的MongoDB架构如下所示:

ctrl+something

小胡子代码如下所示:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
ImageSchema = new Schema (
{ title : String,
  picture: { content: Buffer, contentType: String }
}
);

MongoDB中的数据如下所示,因为它太长而缩短了:

var template = "{{picture.content}} <h1>{{title}}</h1>";
var rendered = Mustache.render(template, imageObject);
$('#target').html(rendered);

以下是我使用multer将其存储到MongoDB中的方法:

 "picture" : {
                "contentType" : "image/png",
                "content" : BinData(0,"iVBORw0KGgoAAAANSUhEUg ...")
             }

将此二进制数据转换为图像的方法是什么,尤其是将其放入Mustache模板中进行显示?如果图像需要以其他方式保存以及如何使用Mustache更容易显示,请告诉我。

感谢。

1 个答案:

答案 0 :(得分:0)

通过将二进制数据转换为URL,然后馈入<img>标签的src,将二进制数据转换为图像-

var template="<img src={{{`data:image/png;base64,${picture.content}`}}}/> <h1>{{title}}</h1>";