使用angular中的数据在node express中进行外部api调用

时间:2016-11-30 20:30:05

标签: angularjs node.js express

我正在尝试使用用户输入的数据来使用节点对外部API进行api调用。我已成功从服务器发出呼叫,并将它们返回到角度。但我需要从angular发送服务器变量,让它调用,并将响应返回给我的视图。我是节点的新手,所以如果已经在某个地方得到了解答,我很抱歉。我环顾四周,一无所获。

我的HTML

<md-input-container class="md-block" flex-gt-sm>
    <label>Player 1</label>
    <input ng-model="player1.username">
</md-input-container>
<md-button ng-click="comparePlayers(player1, player2)">COMPARE!</md-button>

我的控制器功能

$scope.comparePlayers = function(player1) {
    Nerd.getPlayer(player1)
} 

我的书呆子&#39;服务

smiteStats.factory('Nerd', ['$http', function($http) {
    return {
            getPlayer: function(playerName) {
            $http.post('/api/getPlayer', playerName).success(function(data) {
                console.log("sent to server"); //does not run
            })
        }
}]);

我的快速路线

app.post('/api/getPlayer', GetPlayer.apiGetPlayer);

我的节点模块进行api调用

module.exports = {
    apiGetPlayer: function(error, res, player) {
        console.log(player); //this returns "[Function: next_layer] in my cmd
    }
}

1 个答案:

答案 0 :(得分:1)

在POST中发送带$ http的参数:

$http({
    url: host + '/api/getPlayer',
    method: "POST",
    data: { 'fruit1' : "Apple"}
})
.then(function(response) {
        // success
}, 
function(response) { // optional
        // failed
});

要获取POST参数,您需要ExpressJS body-parser包。这将允许您从POST中获取信息。

Read more