首页 文章

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

提问于
浏览
1

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

My 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>

My controller function

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

My 'Nerd' Service

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
            })
        }
}]);

My Express Route

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

My node module that makes the api call

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

1 回答

  • 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

相关问题