我正在尝试使用用户输入的数据来使用节点对外部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
}
}
答案 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中获取信息。