无法从$ http.post获取数据

所以基本上,我有一个表单,我不能获取input的数据(我使用angular和node.js)
req.body
req.params都是空的

我的html表单:

<form ng-submit="sendTradelink()"> <md-input-container class="md-accent"> <label>Enter your tradelink</label> <input ng-model="tradelink"> </md-input-container> <md-button type="submit" class="md-raised md-accent">Send</md-button> </form> 

控制器:

 $scope.sendTradelink = function () { Auth.send() .success(function (res) { $location.path('/'); }); } 

服务:

 authFactory.send = function (tradelink) { return $http.post($api.url + 'tradelink', {tradelink: tradelink}); }; 

服务器端文件,我想要处理插入到表单中的数据:

  api.post('/tradelink', function(req, res){ console.log(req.user.id); console.log(req.params); console.log(req.body); res.json({ success: true, message: 'tradelink received' }) }); 

日志进行控制,每次都是空的。

正如评论中所述,Express并不parsing正文。 POST请求比GET要复杂得多,所以parsing器位于一个单独的包中, body-parser

 npm install --save body-parser // server.js api.use(bodyParser.urlencoded({ extended: true })); api.post('/tradelink', function(req, res) { console.log(req.body.tradelink); }); 

@Amadan的回答是对的。 您还需要更新控制器:

 Auth.send($scope.tradelink)