下面是一个将Base64 BLOB图像编码/解码的Express端点插入到MySQL数据库中的示例解决方法:
首先,需要确保已经安装了以下依赖项:
然后,创建一个名为index.js
的文件,并添加以下代码:
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
// 创建MySQL数据库连接
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase'
});
// 连接到MySQL数据库
db.connect((err) => {
if (err) {
throw err;
}
console.log('Connected to MySQL database');
});
// 使用body-parser解析请求的主体
app.use(bodyParser.json());
// 创建一个POST端点用于将Base64图像编码插入到数据库中
app.post('/image', (req, res) => {
const { base64Image } = req.body;
// 将Base64图像字符串转换为Buffer对象
const imageBuffer = Buffer.from(base64Image, 'base64');
// 构建SQL查询语句
const insertQuery = 'INSERT INTO images SET ?';
// 将图像数据插入到数据库中
db.query(insertQuery, { image: imageBuffer }, (err, result) => {
if (err) {
throw err;
}
console.log('Image inserted into database');
res.status(200).json({ message: 'Image inserted into database' });
});
});
// 创建一个GET端点用于从数据库中获取并解码Base64图像
app.get('/image/:id', (req, res) => {
const { id } = req.params;
// 构建SQL查询语句
const selectQuery = 'SELECT image FROM images WHERE id = ?';
// 从数据库中获取图像数据
db.query(selectQuery, [id], (err, result) => {
if (err) {
throw err;
}
if (result.length > 0) {
// 将Buffer对象转换为Base64图像字符串
const base64Image = result[0].image.toString('base64');
res.status(200).json({ image: base64Image });
} else {
res.status(404).json({ message: 'Image not found' });
}
});
});
// 启动应用程序并监听指定端口
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
请确保将localhost
,root
,password
和mydatabase
替换为您的MySQL数据库的实际连接信息。
使用上述代码,您可以通过发送POST请求到/image
端点将Base64图像编码插入到MySQL数据库中。请求主体应包含一个名为base64Image
的属性,其中值为Base64编码的图像字符串。
要从数据库中检索并解码Base64图像,可以发送GET请求到/image/:id
端点,其中:id
是图像的唯一标识符。
希望这可以帮助到您!
上一篇:Base62编码的冲突问题?