Я работаю над веб-приложением Node.js + Express.js.
Я создал страницу профиля пользователя, которая позволяет пользователю вводить личную информацию и фотографию.
Я хочу убедиться, что если пользователь загружает новую фотографию, то старое изображение должно быть удалено.
Теперь мой код работает нормально, когда дело доходит до перезаписи старой фотографии, НО, если пользователь загружает фотографию в первый раз, то происходит сбой с ошибкой 500.
Как я могу это исправить?
exports.postEditCustomerProfile = (request, response, next) => {
const firstName = request.body.firstName;
const lastName = request.body.lastName;
const phone = request.body.phone;
const address = request.body.address;
const image = request.file;
const UserId = request.user._id;
const errors = validationResult(request);
if (!errors.isEmpty()) {
return response.status(422).render('site/edit_customer', {
pageTitle: 'Edit Customer',
path: '/edit_customer',
user: {
email: request.user.email,
firstName: firstName,
lastName: lastName,
phone: phone,
address: address,
},
errorMessage: errors.array()[0].msg,
validationErrors: errors.array()
});
}
User.findOne(UserId)
.then(user => {
user.firstName = firstName ? firstName : user.firstName;
user.lastName = lastName ? lastName : user.lastName;
user.phone = phone ? phone : user.phone;
user.address = address ? address : user.address;
if (image) {
//This line of code should delete the old photo before uploading the new photo.
fileHelper.deleteFile(user.photoUrl);
user.photoUrl = image.path;
}
return user.save();
})
.then(result => {
console.log('Updated Customer Profile Info');
response.redirect('/edit-customer');
})
.catch(err => {
const error = new Error(err);
error.httpStatusCode = 500;
return next(error);
});
};
Я получаю это в журнале терминала
Error: ENOENT: no such file or directory, unlink ''
Добавлено за запрос!
Код для метода deleteFile
const fs = require('fs');
const deleteFile = (filePath) => {
fs.unlink(filePath, (err) => {
if (err) {
throw (err);
}
})
}
exports.deleteFile = deleteFile;