如何调用用nodejs编写的服务形式angular

How call a service wrote with node js form angular

本文关键字:服务 angular nodejs 何调用 调用      更新时间:2023-09-26

我已经使用node编写了这个服务,它可以工作,但我不知道如何从angularjs控制器调用它,我不得不调用post方法

这是服务:

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

这是我试图将其与angular连接,我需要帮助,请

var app = angular.module('el_acorde_web', []);
app.controller('usuarioscontroller', function($scope, $http)
{
    $scope.usuario = {};
    $scope.usuario.correo = "davidstl5@gmail.com";
    $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);
        });
    }
});

您的代码看起来不错,我能看到您调用registrator函数的HTML代码吗?如果其他一切都正常,您似乎只需要添加ng-click指令,为了获得最佳实践,我会创建一个工厂或服务,并在那里调用一个与Node应用程序交互的函数。

我找到了解决方案!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);
            }
            );
    }

一切正常!