Итак, в основном у меня есть этот метод, который загружает изображение, используя mulder, затем отправляет ответ и создает для него копию.
Идея состоит в том, чтобы иметь возможность обновлять мою запись в базе данных, используя метод обновления.
Вот схема:
const pictureSchema = new mongoose.Schema({
title: {type: String, maxlength: [50, 'Title must be longer than 50 characters']},
description: {type: String},
filename: {type: String},
thumbname:{type: String},
thumbswitch:{type: Boolean, default: false},
user: {type: mongoose.Schema.Types.ObjectId}
});
var picture = mongoose.model('Picture', pictureSchema);
exports.picture = picture;
А вот фактический метод:
pics.post('/upload', (req, res) => {
upload.single('image')(req, res, (err) => {
if(err){
return res.status(500).json({ message: err });
} else {
if(req.file == undefined){
return res.status(500).json({ message: 'upload a valid file!' });
} else {
let pic = new picture({
title: req.body.title,
description: req.body.description,
filename: req.body.databasepicname,
user: mongoose.Types.ObjectId(req.user._id)
});
pic.save()
.then(() => res.status(201).json({ message: pic }))
.then(() => gm(path.resolve('./storage/media/' + req.body.databasepicname)) //// TODO: establish correct routes,
.resize(120, null)
.write(path.resolve('./storage/media/thumb' + '-' + req.body.databasepicname), function (err) {
if (!err) {
console.log('thumbnail created successfully')
//THE PROBLEM IS HERE. HOW DO I UPDATE THE pic object?
pic.update($set{thumbname: 'thumb' + '-' + req.body.databasepicname,
thumbswitch: true})
pic.save().then(() => console.log(pic))
}
else{console.log(err)}
})
)
};
}
});
});
Вот вывод, который я получаю, регистрируя изображение после попытки изменить объект.
{ thumbswitch: false,
_id: 5ce85e820f08d96713c6dc73,
title: 'botty',
description: 'lorem ipsum blah',
filename: 'image-1558732418894.jpg',
user: 5ce85e820f08d96713c6dc72,
__v: 0 }
Вот вывод, на который я надеюсь:
{ thumbswitch: true,
_id: 5ce85e820f08d96713c6dc73,
title: 'botty',
description: 'lorem ipsum blah',
filename: 'image-1558732418894.jpg',
thumbname: 'thumb-image-1558732418894.jpg',
user: 5ce85e820f08d96713c6dc72,
__v: 0 }
Вся помощь очень ценится. Большое спасибо