使用Multer和Node将多个文件上传到MongoDB的过程如下:
npm install multer
const express = require('express');
const multer = require('multer');
const mongoose = require('mongoose');
const app = express();
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true });
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/'); // 上传的文件存储在uploads文件夹中
},
filename: function (req, file, cb) {
cb(null, file.originalname); // 使用原始文件名作为文件名
}
});
const upload = multer({ storage: storage });
app.post('/upload', upload.array('files'), function (req, res, next) {
// 处理上传的文件
// req.files 包含上传的文件数组
// req.body 包含文本域数据
});
req.files
来访问上传的文件数组。你可以将这些文件保存到MongoDB中,例如使用Mongoose模块:const File = mongoose.model('File', {
name: String,
path: String
});
app.post('/upload', upload.array('files'), function (req, res, next) {
// 保存上传的文件到MongoDB
req.files.forEach(function (file) {
const newFile = new File({
name: file.originalname,
path: file.path
});
newFile.save();
});
res.send('文件上传成功!');
});
这样,当你向/upload
发送一个包含多个文件的POST请求时,这些文件将被上传到MongoDB,并且文件信息将被保存到MongoDB的files
集合中。
注意:在上述代码中,我们假设你已经创建了一个名为File
的Mongoose模型来表示上传的文件。你可以根据自己的需求来定义模型的字段。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
请注意,以上答案仅供参考,具体的实现方式可能因项目需求和环境而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云