我将图像存储在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});
}
});
});
但是我只想要图像和rname。有人会帮我吗?
我假设您正在使用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});
}
});
然后在您的/ views /文件夹中创建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>
多种食谱
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 } );
}
});
然后创建一个新模板:
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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句