所以.我添加记录到一个数据库(MySQL与XAMPP和“mysql 2”:“^3.6.2”包)通过
export const addPage = async (req,res) => {
try
{
if(req.session.user !== undefined)
{
const body = req.body;
const plik = req.file.buffer.toString('utf-8'); // REMEMBER THIS
const link = body.link;
const tytul = body.tytul;
const opis = body.opis;
const user = req.session.user.substr(-1);
const curDate = new Date();
const [re] = await (global.db).query("INSERT INTO sites VALUES (NULL, ?, ?, ?, ?, ?, ?);", [plik, link, tytul, opis, user, curDate]);
res.redirect("/panel")
return 0;
}
else{res.redirect('/');}
}
catch(err)
{
throw err; res.redirect('/login');
}
}
字符串
我想做一个获取所有记录的API。所以我做了
export const getAllPages = async (req,res) =>
{
try
{
var [rows,fields] = await (global.db).query("select * from sites order by creation_date");
var image_array = [];
rows.forEach(element => {
image_array.push(element.icon.toString('base64'))
});
res.status(201).json({
status:"success",
Length: rows.length,
data: rows,
images: image_array
});
}
catch(err)
{
res.status(401).json({
status:"fail",
message: err.message
})
}
}
型
注意事项:(global.db)id变量,用于保持与数据库的连接,它工作得很好,没有问题。但是我有一个对象,由状态,数据长度,数据本身(由数据库中的记录组成)和图像组成,图像由blob数组转换成base64字符串。
在我的js文件在前端我有:
const PagesData = fetch("http://localhost:3000/api/v1/Pages", { method:"GET"})
.then((r) => r.json())
.then((Data) => {
console.log(Data);
for (let i = 0 ; i < Data.Length; i++)
{
let element = Data.data[i]
console.log(element)
document.getElementsByTagName('main')[0].innerHTML+=
`
<a class="window octagon-border" href="sitedetails/${element.id}">
<div class="window-img">
<img id="${i}"/>
</div>
<div class="window-title">
<div class="btn inverted-colors no-hover">${element.title}</div>
</div>
<div class="window-mask hexagon"></div>
</a>
`
};
for(let i = 0; i< Data.Length; i++)
{
document.getElementById(i).src = Data.images[i];
}
})
.catch((e) => console.log(e));
型
我得到的结果是,在img标签中,我得到src="”,其中有一个长字符串(它有字符,而不仅仅是数字,因此转换为字符串('base64')工作)。问题是,它不显示结果(它不显示和图像,但在浏览器中有一个图标,没有这样的文件)。
有可能是一个问题,到数据库我把utf-8转换,当从数据库中获取数据时,我使用base64,但当进入数据库时,我使用base64,然后它不工作。
我想从斑点图像,然后显示在img标签
我用的是node v20.5.1
2条答案
按热度按时间sc4hvdpw1#
作者在这里。我是对的,编码是一个问题。我所做的更改
发件人:
字符串
收件人:
型
在前端,
发件人:
型
收件人:
型
bfrts1fy2#
我不完全理解DB部分,但关于前端的blob:
response.blob()
而不是response.json()
。基本上,尝试以下操作:字符串