Я пытался изменить размер своего изображения, когда оно загружается, но я не могу с этим справиться. Я использую Node, Expressjs, Mongoose, Multer and Sharp
. Как изменить его размер при загрузке с помощью Sharp
.
Вот мои маршруты создания
router.post('/create', upload.single('cover'), async (req, res, next) => {
const fileName = req.file != null ? req.file.filename : null
let witdth = 100;
let height = 100;
sharp(req.file)
.resize(witdth, height).toFile(req.file.path)
const event = new Event({
startingDate: req.body.startingDate,
closingDate: req.body.closingDate,
title: req.body.title,
description: req.body.description,
eventImage: fileName
})
try {
const events = await event.save()
res.redirect("/events")
} catch {
if (event.eventImage != null) {
removeeventImage(event.eventImage)
}
res.render("events/new")
}
});
Мне потребовалось указать здесь
const sharp = require('sharp');
и вот моя загрузка путь
const uploadPath = path.join('public', Event.eventImageBasePath)
const imageMineTypes = ['image/jpeg', 'image/png', 'image/gif']
const upload = multer({
dest: uploadPath,
fileFilter: (req, file, callback) => {
callback(null, imageMineTypes.includes(file.mimetype) )
}
})
и моя модель экспортирует этот путь в маршрут
const eventImageBasePath = 'uploads/eventImages'
module.exports.eventImageBasePath = eventImageBasePath
Я выдаю мне эту ошибку
(node:7447) UnhandledPromiseRejectionWarning: Error: Input file is
missing
Пожалуйста, как я могу изменить размер изображение при загрузке в базу данных или после загрузки? любая маленькая помощь будет оценена. Thankss