2016-09-27 3 views
0

Я использую nodejs и angularjs.req.param дает undefined на стороне сервера: nodejs

  1. Я отправил запрос на сервер nodejs с требуемыми данными в параметрах на стороне клиента js.

    itinerary.js

    $http({ 
        method : "GET", 
        url : '/createItinerary', 
        data : { 
         "source" : $scope.sourceDestination.source, 
         "destination" : $scope.sourceDestination.destination 
        } 
    }) 
    
  2. файла я этот узел JS, когда я использую req.params ("источник") или req.params ("назначение"), я получаю неопределенный в них.

    createIitinerary.js

    exports.check = function(req,res){ 
    // These two variables come from the form on 
    var source = req.param("source"); 
    var dest = req.param("destination"); 
    
    console.log("source:"+source); 
    console.log("dest:"+dest); 
    
    var json_responses; 
    
    if(source == dest){ 
        json_responses = {"statusCode" : 401}; 
        res.send(json_responses) 
    } 
    else{ 
        json_responses = {"statusCode" : 200}; 
        res.send(json_responses); 
    }}; 
    

Вопрос: Когда я использую Post, данные корректно получены в nodejs, но не получить. Почему это? Как отправить данные в nodejs с помощью запроса Get.

ответ

1

Для $http.get() вы установите params не data

Try:

$http({ 
     method : "GET", 
     url : '/createItinerary', 
     params: { 
      "source" : $scope.sourceDestination.source, 
      "destination" : $scope.sourceDestination.destination 
     } 
    }) 

это должно быть легко проверить URL, используемый в браузере средства разработки сети и убедитесь, что он выглядит правильно

0

Если вы прочитайте о http-глаголах, тогда вы узнаете, что если метод имеет тип GET, мы не можем отправить данные в тело.

Мы можем отправить данные в качестве параметров запроса, если запрос типа GET поэтому ваш запрос будет

И вы можете прочитать данные на стороне сервера, как

req.query.source 
req.query.destination 

Вы можете отправьте данные в орган, если тип метода: PUT, POST, DELETE, UPDATE и т.д.

Заключение

НИКОГДА НЕ PUT ТЕЛА В GET REQUEST

+0

вам нужно объединить эти переменные в строку URL-адрес ... не может просто включить их как часть строки. Гораздо проще и меньше ошибок, связанных с угловым анализом объекта 'params' – charlietfl

Смежные вопросы