【发布时间】:2015-09-23 13:23:42
【问题描述】:
我有一个快速应用程序,将数据存储在 mongo 中,使用 Jade 作为视图引擎。我有一个简单的路线来获取特定集合中的文档,每个文档对应一个产品。图像是 base64 编码的。当我尝试渲染为图像时,虽然它不起作用
我的路线是
exports.index = function(req, res){
mongo.getProducts(function(data) {
res.render('consumer/index', {user: req.session.user, products: data});
});
};
调用的函数是
exports.getProducts = function(callback) {
Product.find().exec(function(err, products){
return callback(products);
});
};
然后我的 Jade 文件有以下代码
each val in products
img(src="data:image/png;base64,'+#{val.image.data}+'", alt='Image', style="width: 20px; height: 20px")
直接在 Mongo 中查看文档(通过 robomongo)我明白了
我不知道我错过了什么,因为在另一个文件中我使用 jQuery 数据表来显示文档,并且相同的方法可以正确呈现图像,这里是数据表代码的 sn-p
"aoColumns": [
{"mData": "name"},
{"mData": "price"},
{"mData": "category"},
{"mData": "description"},
{"mData": "image.data", "mRender": function ( data, type, full ) {
return '<img src="data:image/png;base64,'+data+'", style="width: 20px; height: 20px"></>'}},
{"mData": "promoted"},
{"mData": null}
]
【问题讨论】:
-
您是否尝试使用 val.image.data.$binary 访问数据?
-
是的,它只是说
val.image.data.$binary是undefined -
你能给我一个从缓冲区转换的base64字符串样本吗?我无法显示图像。
标签: node.js pug node-mongodb-native