我想添加除multer-gridfs-storage默认字段以外的新字段(对象),但无济于事,我要添加的字段是:
默认字段类似
相反想添加
还有一种向文件添加缩略图的方法,所以我没有将我的文件ID引用到其他收藏夹中的缩略图
const storage = new GridFsStorage({
url: config.db,
file: (req, file) => {
return new Promise((resolve, reject) => {
const filename = req.body.fileName + path.extname(file.originalname);
const Description = req.body.Description
const fileInfo = {
filename: filename,
bucketName: 'contents',
metadata: req.body,
}
resolve(fileInfo, Description);
});
}
});
const upload = multer({
storage
});
router.get('/', (req, res) => {
res.render('index');
console.log(req.body)
});
//** uploading file to the db */
router.post('/', upload.any(), (req, res) => {
res.redirect('/upload/files')
});
答案 0 :(得分:1)
这些属性由multer填充,并通过使用的任何存储引擎(在本例中为multer-gridfs-storage)在存储文件时进一步增强。您将无法自己操作这些文件,因为它们是在请求中解析文件然后将其存储在数据库中时生成的。
应该使用mongoose之类的框架,而不是使用元数据来存储业务逻辑,并将该信息存储在集合中,并使用id字段来获取文件的链接。像这样
const Movie = mongoose.model('Movie', {
description: String,
category: String,
token: String,
fileId: Schema.Types.ObjectId
});
从正文中读取字段,并使用此集合将其保存到数据库中,并将文件的自动生成的_id
用作fileId
。这样,您可以轻松查询数据,并且仍然可以使用可用文件。