2016-09-29 6 views
1

Im новый с NodeJS и Im пытается отправить данные на сервер с угловымиAngularJS не отправлять данные на сервер NodeJS

$scope.logearse = function() { 
     $http({ 
      method: "POST", 
      url: "http://localhost:8888/login", 
      data: $scope.usuario 
     }).then(function successCallback(response){ 
       console.log(response) 
     }, function errorCallback(error){ 
      alert("No se han podido enviar los datos") 
     }) 
    } 

Но на сервере при попытке получения запроса всегда {}

http.createServer(function(peticion, respuesta){ 

    console.log(peticion.url) 
    console.log(peticion) 
    // We begin with "login" 

    if (peticion.url == "/login") { 
     console.log("Inside of Login) 

     var datosUsuarioLogin = ''; 

     peticion.addListener("data", function(chunk) { 
      datosUsuarioLogin += chunk; 

     // function called when a new chunk of data is recibed 
     }); 

     peticion.addListener("end", function() { 
      // When the data is recibed is transformed in JSON 
      var datosUsuarioLoginObjeto = querystring.parse(datosUsuarioLogin); 
      recuperarDatos(datosUsuarioLoginObjeto, respuesta); 
      console.log(datosUsuarioLoginObjeto) //return {} 
     }); 
     //End of LOGIN "if" 
    } 
    }).listen(8888) 

Дело в том, что тот же код работает, если я использую форму с обычной подачей, но нет, если я попытаюсь использовать $ http ANGULAR.

Я пытаюсь использовать «params» вместо «data», но «params» преобразует данные в URL-адрес, а код dont работает.

+0

ли вы устанавливаете соответствующие заголовки вместе с запросом типа «Content-Type»: «application/json» –

+0

Если это так, нам, вероятно, нужно подтвердить, что происходит с $ scope.usuario. , – defaultcheckbox

+0

Те, кто не по-английски комментирует код, не помогают –

ответ

0

Вам необходимо использовать bodyParser, чтобы проанализировать тело запроса и поместить результат в request.body маршрута.

app.use(express.bodyParser()); 

И просьба:

$http({ 
     method: "POST", 
     url: "http://localhost:8888/login", 
     contentType: "application/json", 
     data: $scope.usuario // if usuario is not a valid json, you could to use JSON.stringify($scope.usuario); 
+0

Я все еще не использую express. Я хочу узнать, как создать приложение без эксплойта (или других дополнений), а затем узнать, как использовать эти аддоны. –

0

Ok, после того, как много времени, пытаясь finnaly я использую Express, но версия Экспресс я использую Dont позволить просто bodyParser мне нужно установить тело синтаксического анализа промежуточного программного Link to body-parser

И код

var bodyParser = require('body-parser'); 
var jsonParser = bodyParser.json(); 

app.post('/', jsonParser, function (request, response) { 
response.send(request.body) 
}); 
Смежные вопросы