Я использую multer для загрузки изображения в expressjs, и API работает нормально в POSTMAN, но всякий раз, когда я загружаю изображение в angular5 для сохранения в mongodb, я получаю ошибку 500 внутренняя ошибка сервера.Есть ли кто-нибудь, кто может предложить мне, как загрузить изображение в базу данных?
// API to upload the image and working fine in POSTMAN
router.put('/users/:email', upload.single('image') , (req, res)=> {
console.log(req.file);
User.updateOne({email: req.params.email}, {
$set: {
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email,
password: req.body.password,
dob: req.body.dob,
designation: req.body.designation,
address: req.body.address,
mobile: req.body.mobile,
image: req.file.path
}
},
function(err, item) {
if(err) {
res.json(err);
} else {
res.json({message: "record updated successfully!!"});
}
}
)
});
Ниже приведен файл .ts со следующими данными:
onFileSelected(event) {
console.log(event);
this.selectedFile = event.target.files[0];
}
// to edit the details
updateProfile(editForm) {
const fd = new FormData();
fd.append('image', this.selectedFile, this.selectedFile.name);
const newItem = {
email: editForm.value.email,
firstName: editForm.value.firstName,
lastName: editForm.value.lastName,
dob: editForm.value.dob,
password: editForm.value.password,
designation: editForm.value.designation,
address: editForm.value.address,
mobile: editForm.value.mobile,
image: editForm.fd
};
this.dataService.updateUser(newItem)
.subscribe(item => {
console.log(item);
this.fetchUserData();
this.showEditForm = !this.showEditForm;
},
err => {
console.log(err);
}
);
}