У меня есть экспресс-приложение, хранящее данные в mongo, используя Jade в качестве механизма просмотра. У меня есть простой маршрут, который получает документы в конкретной коллекции, каждый документ, соответствующий продукту. Изображение кодируется base64. Когда я пытаюсь и сделать как изображение, хотя он не работаетИспользование двоичных данных из коллекции Mongo в качестве источника изображения
Мой маршрут
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);
});
};
, а затем мой файл Джейд следующий код
each val in products
img(src="data:image/png;base64,'+#{val.image.data}+'", alt='Image', style="width: 20px; height: 20px")
Глядя на документ непосредственно в Монго (через robomongo), я получаю это
Я не знаю, что я пропускаю, потому что в другом файле я использую JQuery DataTables, чтобы показать документы, и тот же подход, там правильно делает изображение, здесь фрагмент кода DataTables
"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? – Tony
Да, это просто говорит: «val.image.data. $ Binary' is' undefined' –
вы можете отправить мне образец строки base64, который преобразован из буфера. Я не могу показать изображение. –