无法从$ 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)
- ExpressJS与AngularJS路由配对,没有链接上的hashtag
- HTML5模式 – ui-router – 未捕获SyntaxError:意外的标记<
- 在mongdb中更改数据时更新angularJS视图
- Angular Node – 在打开新的浏览器窗口时向服务器发送令牌
- 吞噬错误:产生EACCES
- 与没有Expressjs和Nodejs的Angular JS的MogoDB
- Restangular订购方式:AngularJs
- Nodejs http://test.dev:3000/api/profile。 没有'Access-Control-Allow-Origin'标题Origin'http:// localhost:9000'
- 当restAPI应用程序服务器(express)和Angulars js应用程序运行在不同的端口时,Cors问题