我有一个带有Node.JS的Angular后端服务器的Web应用程序。我遇到的问题是我按下Html上的一个按钮,调用ng-click调用控制器中的一个函数,然后,控制器将调用Angular服务中的一个函数。最后,Angular服务将使用$ http.put到Node.JS服务器。我面临的问题是,参数“myData”无法传递给Node.JS Server。 来自Node.JS的错误消息:TypeError:无法读取未定义的属性“source”。 我的代码如下。
HTML:
<button class="btn btn-default btn-lg col-sm-2 col-sm-offset-2" ng-class="videoVGA" ng-click="myFunction('ABC')" >ABC</button>
控制器:
$scope.myFunction = function (data){
switch(data){
case "ABC":
var myData = new Object();
myData.source = data;
controlProvider.serviceFunction(myData);
break;
服务:
(function(){
function controlProvider($http) {
this.serviceFunction = function(myData){
$http.put("http://localhost:8080/v/switch", myData);
}
}
controlApp.service('controlProvider', controlProvider);
})();
Node.js的:
app.put("/v/switch",function(req,res){
console.log("Printing" + " " + req.body.source);
if(req.body.source === "ABC"){
//Do something
}
});
答案 0 :(得分:1)
我会冒险猜测req.body
本身是未定义的。节点比角度更多问题。你安装了body-parser
模块吗?您需要安装正文解析器才能使用req.body
。