如何在angular度/节点应用程序中正确发送和接收表单数据

我正在写一个基于mean.js锅炉板的应用程序

我有一个窗体在我的angular度来看,这需要发送一些formData:

<form name="form" ng-submit="postUpdate()"> <div class="form-group"> <fieldset> <legend><strong>Salesforce Opportunity</strong> </legend> <div class="col-sm-6"> <label for="opportunityId">Opportunity ID</label> <input id="kw" name="opportunityId" type="text" placeholder="kw" class="form-control" ng-model="kwRequired"/> ...... 

在我的angular度控制器中,我有这样的:

 $scope.postUpdate = function(){ var posturl = '/salesforce_update'; console.log('kwRequired ' + $scope.kwRequired); var postData = {kw: $scope.kwRequired}; $http.post(posturl,postData); } 

然后,在我的服务器节点/expression代码,我有这个处理程序:

 .... app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); ...... app.post('/salesforce_update', function(req, res){ console.log('Salesforce update Request Received'); console.log('_parsedUrl.query: ' + req.body.kw); }); 

我确实得到了到服务器端的请求,但经过检查,请求主体是空的。

我错过了什么?

你需要像这样使用angular.toJson方法:

 $scope.postUpdate = function(){ console.log('kwRequired ' + $scope.kwRequired); var postData = {kw: $scope.kwRequired}; var json = angular.toJson(postData); $http.post('/salesforce_update', json); } 

还要确保定义app.use(bodyParser.json()); app.post('/salesforce_update', function ....的定义之前