Я хотел добавить новые поля (объекты), отличные от полей по умолчанию multer-gridfs-storage, но безрезультатно, я хочу добавить следующие поля:
В поле по умолчанию есть что-то вроде
вместо этого хочу добавить что-то вроде
А также есть способ добавить миниатюру в файл, чтобы у меня не было ссылки на свой идентификатор файла на миниатюру в другой коллекции
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.info(req.body)
});
//** uploading file to the db */
router.post('/', upload.any(), (req, res) => {
res.redirect('/upload/files')
});




Эти свойства заполняются Multer и дополнительно улучшаются любым механизмом хранения, который вы используете, в данном случае Multer-gridfs-хранилище, когда файл сохраняется. Вы не сможете манипулировать ими самостоятельно, потому что они генерируются, когда файл анализируется в запросе, а затем когда он сохраняется в базе данных.
Вместо использования метаданных для хранения бизнес-логики вы должны использовать фреймворк, например мангуста, хранить эту информацию в коллекции и использовать поле id для получения ссылки на ваш файл. Что-то вроде этого
const Movie = mongoose.model('Movie', {
description: String,
category: String,
token: String,
fileId: Schema.Types.ObjectId
});
Считайте свои поля из тела и сохраните их, используя эту коллекцию, в базу данных и используйте автоматически сгенерированный _id вашего файла как fileId. Таким образом, вы можете легко запрашивать данные и при этом иметь доступ к доступному файлу.
Я создал новую схему с именем ссылка на фильм, идентификатор, как вы мне сказали
проверить эти stackoverflow.com/questions/53558684/… @devconcept
Вышеупомянутый метод, который вы предлагаете, не генерирует некоторый идентификатор, отличный от идентификатора файла.