2016-09-29 78 views
1

林新与和的NodeJS我试着当我尝试收到请求将数据发送到服务器角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的角度。

我尝试使用“params”而不是“data”,但“params”转换URL中的数据并且代码不起作用。

+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

好了,很多时间试图finnaly后,我用快递,但快递的版本我用不干脆让bodyParser我需要安装体解析器中间件 Link to body-parser

和代码

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

app.post('/', jsonParser, function (request, response) { 
response.send(request.body) 
});