2016-08-15 2 views
0

Node.JSを持つAngular、backendサーバを持つWebアプリケーションがあります。私が持っている問題は、Html上のボタンを押すことです。これは、ng-clickリコールをコントローラ内の関数に呼び出すと、コントローラはAngularサービス内の関数を呼び出します。最後にAngularサービスは$ http.putをNode.JSサーバーに使用します。私が直面している問題は、パラメータ "myData"がNode.JS Serverに渡すことができないことです。 Node.JSからのエラーメッセージ:TypeError:未定義の 'source'プロパティを読み取ることができません。 私のコードは以下の通りです。Angularサービスにパラメータを渡すことができません、Node.JSバックエンドサーバ

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

私は推測を危険にさらし、req.body自体が定義されていないと言います。角度よりもノードの問題が多いbody-parserモジュールがインストールされていますか? req.bodyを使用できるようにするには、body-parserをインストールする必要があります。

+0

ありがとう、私はノードにボディパーサを含めるのを忘れていました。 –

関連する問題