Как отправить данные формы и файлы на сервер, используя angular и nodejs? - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть форма с контролем файлов, которая может выбирать несколько изображений.Я хочу загрузить несколько изображений на сервер и данные в базу данных.Я пытался formData:

postNewProduct (vlaue) вызывается при нажатии кнопки отправки:

postNewProduct(value) {
  const formData = new FormData();
  const files: Array<File> = this.selectedFile;
  for(let i =0; i < files.length; i++){
    formData.append("uploads[]", files[i], files[i]['name']);
  }

  formData.append('productName', value.productName);
  formData.append('productCategory', value.productCategory);
  this.productService.postNewProduct(formData).subscribe(
   message => alert(message));
}

onFileSelected (fileInput) вызывается, когда изображения выбираются элементами управления формы:

onFileSelected(fileInput){
  let images = fileInput.target.files.length;
  if(images < 1 || images > 4){
   alert("please select at image between 1 and 4");
  }else{
   this.selectedFile = <Array<File>>fileInput.target.files;
   console.log(this.selectedFile);
}
}

Это моя функция в службе, которая выполняет вызовы API:

postNewProduct(newProduct){
  return this.http.post(`/api/product/postproduct`, newProduct);
}

Это моя функция в бэкэнде узла, но в request.body и файлах ничего нет

exports.postProduct = function(request, response) {
  console.log(request.body);
  console.log(request.files);
  productModel.postProduct(request, (message, lastID) => {
    response.json(message, lastID);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...