[英]Fetch image from mysql database using node.js
I have stored my images in mysql database.When I am trying to retrieve them I am getting my image along with a lengthy string of buffer.Here goes my code:我已将我的图像存储在 mysql 数据库中。当我尝试检索它们时,我正在获取我的图像以及一长串缓冲区。这是我的代码:
var sql ="SELECT rname,image FROM recipes WHERE ringre LIKE '%" +items[0]+"%' ";
for( var i=1;i<items.length;i++){
sql = sql + "AND ringre LIKE '%"+items[+i]+"%' ";
}
console.log(sql);
con.query(sql, function(err,result){
if(err){
throw err;
}else{
console.log(result);
var result1 = JSON.stringify(result);
res.render("recipes_response",{ data: result[0].image.toString('base64'), recipes: result1});
}
});
});
But I just want the image and rname.但我只想要图像和 rname。 Will anybody help me out?
有人会帮我吗?
I'm assuming that you're using EJS templates, so if you write:我假设你正在使用 EJS 模板,所以如果你写:
con.query(sql, function(err,result){
if(err){
throw err;
}else{
res.render("recipes_response", { data: result[0].image.toString('base64'), rname: result[0].rname});
}
});
Then in your /views/ folder create recipes_response.ejs然后在您的 /views/ 文件夹中创建 recipes_response.ejs
recipes_response.ejs recipes_response.ejs
<html>
<body>
<div class="container">
<h3>Image test</h3>
<div>
<h4>Recipe name: <%= rname %></h4>
<img src="data:image/png;base64, <%= data %>" alt="DB Image" />
</div>
</div>
</body>
</html>
Multiple Recipes多个食谱
con.query(sql, function(err,result){
if(err){
throw err;
}else{
let recipes = result.map(row => { return { rname: row.rname, image: row.image.toString('base64')}});
res.render("recipes_response_list", { recipes } );
}
});
Then create a new template:然后创建一个新模板:
recipes_response_list.ejs recipes_response_list.ejs
<html>
<body>
<div class="container">
<h3>Recipes</h3>
<% for (let recipe of recipes){ %> %>
<div>
<h4>Recipe name: <%= recipe.rname %></h4>
<img src="data:image/png;base64, <%= recipe.image %>" alt="Recipe image" />
</div>
<% } %>
</div>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.