我如何添加除 multer-gridfs-storage 默认属性之外的新字段
How do i add new field other than multer-gridfs-storage default properties
我想添加 multer-gridfs-storage 默认字段以外的新字段(对象)但无济于事,我想添加的字段是:
- 描述
- 类别
- 令牌
默认字段类似于
- _id
- 长度
- 块大小
- 上传日期
- md5
- 内容类型
相反,想添加类似
的东西
- _id
- 长度
- 块大小
- 上传日期
- md5
- 内容类型
- 描述
- 类别和其余
还有一种方法可以将缩略图添加到文件中,这样我就不会将我的文件 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')
});
存储文件时,这些属性由 multer and further enhanced by whatever storage engine you are using, in this case multer-gridfs-storage 填充。您将无法自己操作这些文件,因为它们是在请求中解析文件然后将其存储在数据库中时生成的。
您不应使用元数据来存储您的业务逻辑,而应使用 mongoose 之类的框架并将该信息存储在集合中,并使用 id 字段为您的文件获取 link。像这样
const Movie = mongoose.model('Movie', {
description: String,
category: String,
token: String,
fileId: Schema.Types.ObjectId
});
从正文中读取您的字段并使用此集合将它们保存到数据库中,并使用文件的自动生成 _id
作为 fileId
。这样您就可以轻松查询您的数据,并且仍然拥有可用文件的句柄。
我想添加 multer-gridfs-storage 默认字段以外的新字段(对象)但无济于事,我想添加的字段是:
- 描述
- 类别
- 令牌
默认字段类似于
- _id
- 长度
- 块大小
- 上传日期
- md5
- 内容类型
相反,想添加类似
的东西- _id
- 长度
- 块大小
- 上传日期
- md5
- 内容类型
- 描述
- 类别和其余
还有一种方法可以将缩略图添加到文件中,这样我就不会将我的文件 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')
});
存储文件时,这些属性由 multer and further enhanced by whatever storage engine you are using, in this case multer-gridfs-storage 填充。您将无法自己操作这些文件,因为它们是在请求中解析文件然后将其存储在数据库中时生成的。
您不应使用元数据来存储您的业务逻辑,而应使用 mongoose 之类的框架并将该信息存储在集合中,并使用 id 字段为您的文件获取 link。像这样
const Movie = mongoose.model('Movie', {
description: String,
category: String,
token: String,
fileId: Schema.Types.ObjectId
});
从正文中读取您的字段并使用此集合将它们保存到数据库中,并使用文件的自动生成 _id
作为 fileId
。这样您就可以轻松查询您的数据,并且仍然拥有可用文件的句柄。