2014-10-11 27 views
0

我想获得nodeJS/expressJS来获取使用jQuery $.ajax函数发送的表单数据。我知道$http有加上它不是一个好的做法,有jQuery的角度,但我真的被困在需要新的表单元素和jQuery的东西,所以我写这个来测试它。我怎样才能得到快递js阅读表格

我在做这个测试,因为我找不到一个方法或信息如何获取表单数据(包括文件),而不使用body-parser,因为它不支持multipart/form-data,因为我已经阅读一些在网上的地方。

下面是代码在前端

$scope.sendMsg = function() { 
    var formData = new FormData($('#form'));  
    $.ajax({ 
     url: '/test', 
     type: 'POST', 
     data: formData, 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function (data, status,something) { 
      $scope.$apply(function() { 
       console.log('data: ' + data); 
       console.log('status: ' + status); 
       console.log('something: ' + something); 
       $scope.msgs.push({content : data}) 
       $scope.msgText = ''; 
      }); 
     }, 
     error: function (data, error) { 
      alert('Did not work'); 
     } 
    }); 
} 

,并在后端

app.post('/test',function (req, res) { 
    res.send(req.body.msg); 
}); 

回答

0

您需要使用body-parser为抢夺输入变量非常基本的测试,然后像connect-busboy用于文件解析。您需要这样做的原因是因为nodejs文化是将所有内容放入最小的组件中,以便人们可以根据需要混合和匹配模块。在这种情况下,你需要文件解析和其余的表单数据,所以你需要包含两个中间件。

body解析器模块用于包含文件解析功能,但由于它使用了临时文件的后端技术(而用户倾向于只使用其他模块),所以不推荐使用它。