请写一段后端保存照片到数据库的代码,前端以base6
时间: 2024-03-16 13:41:38 浏览: 69
好的,以下是使用 Node.js 和 Express 框架保存 Base64 格式的图片到 MongoDB 数据库的示例代码:
首先需要安装依赖包,包括 express、mongoose、body-parser 和 multer:
```
npm install express mongoose body-parser multer --save
```
然后在服务器端代码中引入依赖包和数据库模型:
```javascript
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const multer = require('multer');
const app = express();
// 定义图片存储路径和文件名
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads'); // 存储路径
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + '.jpg'); // 文件名
}
});
// 创建 Multer 实例
const upload = multer({ storage: storage });
// 定义数据库模型
const ImageSchema = new mongoose.Schema({
name: String,
data: Buffer
});
const Image = mongoose.model('Image', ImageSchema);
// 连接 MongoDB 数据库
mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
// 解析 JSON 和表单数据
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// 保存图片到数据库
app.post('/api/images', upload.single('image'), (req, res) => {
const name = req.body.name;
const data = req.file.buffer;
const image = new Image({ name, data });
image.save(err => {
if (err) {
console.log(err);
res.status(500).send('Error uploading image');
} else {
res.status(200).send('Image uploaded successfully');
}
});
});
// 启动服务器
app.listen(3000, () => console.log('Server started on port 3000'));
```
以上代码中,使用 Multer 模块来处理上传的图片文件,将其保存在指定的路径和文件名中,并将图片的名称和二进制数据存储在 MongoDB 数据库中。在前端发送请求时,需要将图片的 Base64 编码作为请求体中的数据,以表单的形式发送到后端接口。
注意:以上代码仅供参考,需要根据具体情况进行调整和优化,例如需要添加文件类型和大小限制、错误处理等。
阅读全文