2016-05-09 51 views
0

我已經使用節點寫了這個服務,它的工作原理,但我不知道如何把它從angularjs控制器調用寫的,我NEDD調用POST方法服務如何調用與節點JS形式的角度

這是服務:

var app = require('express')(); 
var http = require('http').Server(app); 
var mysql = require('mysql'); 
var bodyParser = require("body-parser"); 
var connection = mysql.createConnection({ 
     host  : 'localhost', 
     user  : 'root', 
     password : '', 
     database : 'repositorio', 
    }); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

app.get('/',function(req,res){ 
    var data = { 
     "error":1, 
     "Usuarios":"" 
    }; 

    connection.query("SELECT * from usuario",function(err, rows, fields){ 
     if(rows.length != 0){ 
      data["error"] = 0; 
      data["Usuarios"] = rows; 
      res.json(data); 
     }else{ 
      data["Usuarios"] = 'Usuarios no encontrados..'; 
      res.json(data); 
     } 
    }); 
    /*var data = { 
     "Data":"" 
    }; 
    data["Data"] = "Welcome to Book Store DEMO..."; 
    res.json(data);*/ 
}); 

app.post('/usuario',function(req,res){ 
    var Email = req.query.correo; 
    var Password = req.query.contrasena; 
    var Nombres = req.query.nombres; 
    var Apellidos = req.query.apellidos; 
    var Usuario = req.query.usuario; 
    var data = { 
     "error":1, 
     "Usuario":"" 
    }; 
    console.log("Email: "+Email+" Password "+Password+" Nombres "+Nombres+" Apellidos "+Apellidos+" Usuario"+Usuario); 
    if(!!Email && !!Password && !!Nombres && !!Apellidos && !!Usuario){ 
     var user ={usu_correo: Email,usu_contrasena: Password,usu_nombres:Nombres,usu_apellidos: Apellidos,usu_usuario:Usuario} 
     connection.query('INSERT INTO usuario SET ?',user,function(err, rows, fields){ 
      if(!!err){ 
       data["Usuario"] = "Error Adding data"; 
      }else{ 
       data["error"] = 0; 
       data["Usuario"] = "Usuario adicionado con éxito"; 
      } 
      res.json(data); 
     }); 
    }else{ 
     data["Usuario"] = "Please provide all required data"; 
     res.json(data); 
    } 
}); 
http.listen(8080,function(){ 
    console.log("Connected & Listen to port 8080"); 
}); 

,這是我試圖把它與角連接,我需要幫助,請

var app = angular.module('el_acorde_web', []); 

app.controller('usuarioscontroller', function($scope, $http) 
{ 
    $scope.usuario = {}; 
    $scope.usuario.correo = "[email protected]"; 
    $scope.usuario.nombres = "David Fernano"; 
    $scope.usuario.apellidos = "Sotelo"; 
    $scope.usuario.contrasena = "lakjsdlfkja"; 
    $scope.usuario.usuario = "davidstl5"; 


    $scope.registrar = function(){ 
     $http.post('http://localhost:8080/usuario', $scope.usuario) 
     .success(function(data) 
     { 
      alert(data); 
     }) 
     .error(function(data) 
     { 
      alert('Error:' + data); 
     }); 
    } 
}); 
+0

如果您改變成功,那麼它工作嗎? – uglycode

+0

也許dup是http://stackoverflow.com/questions/32515171/common-method-for-calling-a-node-function-from-angular-controller – Ouroborus

+0

你得到的迴應? –

回答

0

您的代碼看起來不錯,我可以看到HTML代碼,你在哪裏調用註冊商功能?看起來你只需要添加ng-click指令,如果一切正常,最好的做法是創建一個工廠或一個服務並調用一個與Node應用交互的函數。

+1

我不是投票,因爲你是新的,但這應該是一個評論,而不是一個答案。 –

+0

+0

好的,感謝提示@mJunaidSalaat,昨天沒有看到評論textfield –

0

我找到了解決方案! Chrome是問題,我們安裝https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

,然後使用:

$scope.registrar = function(){ 
     alert("Entre"); 
     /*$http.post('http://localhost:8080/usuario', $scope.usuario) 
     .success(function(data) 
     { 
      alert(data); 
     }) 
     .error(function(data) 
     { 
      alert('Error:' + data); 
     });*/ 

     var datos = {correo: $scope.usuario.correo, contrasena: $scope.usuario.contrasena, 
           nombres:$scope.usuario.nombres, apellidos: $scope.usuario.apellidos, 
           usuario: $scope.usuario.usuario}; 

     var request = $http({ 
      method: "POST", 
      url: "http://localhost:8080/usuario",      
      data: datos, 
      headers: { 'Content-Type': 'multipart/form-data', 'Authorization': 'Basic ' + btoa(datos), 
      'Access-Control-Allow-Origin': "*"} 
     }); 

     request.success(
      function(data) { 
       alert(data); 
      } 
     ); 

     request.error(
      function(data) { 
       alert(data); 
      } 
      ); 
    } 

和一切正常!