загрузить изображение в угловую 5, показывая 500 (внутренняя ошибка сервера) - PullRequest
0 голосов
/ 22 мая 2018

Я использую 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);
  }
);
  }
...