【问题标题】:Not able to get form-data sent from angular to node server无法获取从角度发送到节点服务器的表单数据
【发布时间】:2018-07-07 03:57:33
【问题描述】:

我正在发送form-dataimage-data
但是在FormData 内部发送时,我无法在节点服务器上获取数据。

我可以在console.log 上看到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]。

【问题讨论】:

    标签: angularjs node.js multer


    【解决方案1】:

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

    (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);
    

    【讨论】:

    • 感谢您的回答,但我这样做了,但一无所获。在for(key in $scope.seller){ console.log(key) },我只能看到businessInformation
    • 代码,我已经在问题中发布了,API 没有任何问题,如果我用 POSTMAN 访问 API,那么我可以更新我的收藏。问题是当我尝试用图像附加表单数据时,我可以在服务器上看到图像数据而不是 fprm 数据。
    • 我正在使用谷歌浏览器
    • 嗯,我可以在服务器端获取图像数据,因为在执行console.log(req.files) 时,我可以看到图像数据。但问题在于其他包含文本字段和下拉列表的表单数据,所有这些数据都是未定义的,因为 Angular 没有发送这些字段
    • 如果你仔细看看我的角度代码,在执行for(key in $scope.seller){ console.log(key) } 时,我应该得到所有的密钥,但我只得到businessInformation
    【解决方案2】:

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

    req.body.name
    req.body.age
    

    【讨论】:

    • 感谢您的回答。我的模型包含这样的数据:info.name.firstname。我尝试记录这些数据,我收到了undefined
    • 你能知道console.log(key, $scope.seller); 行中会记录什么
    • 不打印
    • 我希望你得到答案,你没有向节点服务器发布任何内容
    • 是的,我得到了答案
    【解决方案3】:

    问题在于 ng-model 数据绑定。
    我正在绑定这样的数据:'seller.a.b.c'
    相反,我做了seller.a,它成功了。

    【讨论】:

    • 这个答案与你发布的问题完全无关
    猜你喜欢
    • 2021-04-13
    • 2018-02-09
    • 1970-01-01
    • 2016-07-19
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多