无法获取从 angular 发送到节点服务器的表单数据

Not able to get form-data sent from angular to node server

我正在发送 form-dataimage-data
但是在 FormData.

内部发送时,我无法在节点服务器上获取数据 我可以在 console.log.

上看到 angular 控制器上的数据

angular代码:

$scope.saveInfo = function(){
  var formData = new FormData;
  console.log('Update function');
  for(key in $scope.seller){
    formData.append(key, $scope.seller[key]);
  }
  console.log(key, $scope.seller);
  var file = $('#file')[0].files[0];
  formData.append('image', file);

  $http.put('/api/seller/businessInformation', formData, {
    transformRequest: angular.Identity,
    headers: {
      'Content-type': undefined
    }
  }).then(function(res){

  });
}

Node.Js: 我可以在 console.log(req.files);
上看到图像数据 但是 console.log(req.body); 打印出 [object object].

req.body 是一个对象。如果您的表单数据包含姓名和年龄。然后你可以在节点中获取这些值,如下所示

req.body.name
req.body.age

解决这个问题的最佳方法是

(i) JSON.stirngify(req.body) 在您的代码中。

(ii) 查看打印的数据是什么,然后根据输出可以使用 req.body.whateverField

编辑

您可以访问 FormData 作为,

console.log(req.files.file.name);

要访问 FormData,您可以使用

var a = JSON.parse(req.body.name);
console.log(a);

问题出在 ng-model 数据绑定上。
我是这样绑定数据的:'seller.a.b.c'
相反,我做了 seller.a 并且它起作用了。