无法将参数传递给Angular服务,Node.JS后端服务器

时间:2016-08-15 04:14:25

标签: angularjs

我有一个带有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
    }
});

1 个答案:

答案 0 :(得分:1)

我会冒险猜测req.body本身是未定义的。节点比角度更多问题。你安装了body-parser模块吗?您需要安装正文解析器才能使用req.body