2016-08-09 10 views
0

Ich versuche, einige Daten aus meiner MySql-Datenbank zu meinem Angular-Controller über Knoten/Express abrufen, aber ich habe einige Probleme mit dem Routing.Abrufen von Daten von MySql db über Express und Angular

In dem Winkelregler I eine Ladefunktion haben, die eine Erhaltungs-Anforderung hat:

$scope.load = function() { 
     $http.get('/users'). 
      success(function(data, status, headers, config) { 
       console.log('success'); 
       $scope.todos = data; 
       console.log(data); 
       console.log($scope.todos); 

      }). 
      catch(function(data, status, headers, config) { 
      console.log('catch'); 
      console.log(status); 
       console.log(data); 
      }); 
    }; 

In meinem app.js ich habe:

var users = require('./routes/users'); 
app.use('/users', users); 

Und in meinem Routen/users.js Datei ich habe:

var express = require('express'); 
    var router = express.Router(); 
    var pool = require('../connection'); 

    /* GET users listing. */ 
    router.get('/users', function(req, res, next) { 

     pool.getConnection(function(err, connection){ 
      connection.query('SELECT * FROM `users` WHERE `first_name` = "Kees"', function(err, results){ 
       if(err) { 
        throw err; 
       }else{ 
        console.log(results); 
       } 
      }); 

      connection.release(); 
     }); 
    }); 

    module.exports = router; 

Wenn ich die Last() Funktion in meiner Sicht feuern die app.js kehrt log:

GET/users 404 54,369 ms - 1846

und der Browser zeigt:

GET http://localhost:3000/users 404 (nicht gefunden)

Fang

Objekt {Daten: "", status: 404, config: Objekt, statusText: "Nicht gefunden"}

Was ist die richtige Methode zum Abrufen der Daten über Express?

Antwort

2

In Ihrer app.js haben Sie bereits die Route für alle Anrufe auf /users eingerichtet. Das bedeutet, dass alle http-Anfragen in Ihrer users.js-Datei diese bereits in der URL enthalten. So folgt aus:

router.get('/users', function(req, res, next) 

tatsächlich aus example.com/users/users genannt.

Schreiben Sie einfach es wie folgt statt:

router.get('/', function(req, res, next)