request.body.email是使用http.get的未定义的节点js服务器端

时间:2016-07-13 10:10:02

标签: javascript node.js request undefined server-side

我有一个问题,request.body.email返回我undefined。 我在客户端的控制器上编写了这段代码:

 wish.controller('wishCtrl',['$scope','$http','$cookies',function($scope,$http,$cookies) {
    var user={};
    user.email = $cookies.get('cookieEmail');
    console.log(user.email);
     $http.get("http://localhost:3000/wishlist",user).success(function(data){

        $scope.wishController = data; 
        console.log(data);
    });

}]);

这里我看到 - user.email好了所以这里没有问题。

我在服务器端的控制器上写道:

exports.getData = function(request, response) {
    userEmail = request.body.email;
    console.log(userEmail);
}

将我写回未定义。 调用我在server.js上的这个函数(在服务器端)

app.get('/wishlist',wish.getData);

任何想法如何修复它?

2 个答案:

答案 0 :(得分:0)

您正在发出GET请求。 GET请求中没有请求正文。

如果您想阅读查询字符串数据,请parse request.url

Angular documentation for get表示最后一个参数必须是配置对象。因此看起来您甚至无法将数据放入网址中。也传递配置。

$http.get("http://localhost:3000/wishlist",user, {})

答案 1 :(得分:0)

因为我没有得到功能必须以这种方式在客户端传递电子邮件:

$http.get("http://localhost:3000/wishlist/"+user.email)

并且服务器的路径应该以这种方式识别它:

app.get('/wishlist/:email',wish.getData);  

并以这种方式控制控制器:

userEmail = request.params.email;
console.log(userEmail);