2016-07-13 1 views
0

У меня проблема, когда request.body.email возвращает меня undefined. Я написал этот код на мой контроллер на клиентской стороне:request.body.email undefined узел js server side using http.get

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

любая идея, как это исправить?

+0

Что не определено? Ваш заголовок говорит, что 'request' не определен, но вы сказали, что' request.body.email' не определено. – Quentin

+0

исправил это. спасибо за ваш комментарий – user3488862

ответ

0

Вы делаете запрос GET. В запросе GET нет тела запроса.

Если вы хотите прочитать данные строки запроса, то parse request.url.

Angular documentation for get говорит, что последним аргументом должен быть объект конфигурации. Таким образом, похоже, что вы даже не можете помещать свои данные в URL-адрес. Передайте конфигурацию.

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

, поэтому я не могу получить этот объект на своей стороне сервера, используя $ http.get? – user3488862

+0

@ user3488862 - Я этого не говорил. Вы должны (a) убедиться, что данные действительно находятся в строке запроса, и (b) прочитать строку запроса, а не (несуществующий) объект. Как я сказал в ответ. – Quentin

0

потому, что получают функции I't должны пройти электронную почту на стороне клиента, таким образом:

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

и путь разъединяет должен признать, что путь:

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

и внутри контроллера таким образом:

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

request.body.email также будет работать, если вы отправляете данные POST. i.e $ http.post ("http: // localhost //") –