2016-06-27 3 views
-1

Ich bin sehr neu in MEAN. Ich versuche, einen Datensatz von Knoten an meinen Winkel-Controller zu senden. Der Winkelregler empfängt jedoch nicht die korrekten Informationen und führt zu Null.Werte von Server zu Client | übergeben Node to Angular

Meine Ansicht heißt booklist.jade

Hier meine Server-Seite ist (Node JS)

router.get('/thelist', function(req, res){ 

    res.render('booklist'); 
    }); 

router.get('/thelist/data', function(req, res){ 

    . 
    . 
    . 

    // Find all books 
    collection.find({}).toArray(function (err, result) { 
     if (err) { 
     res.send(err); 
     } else if (result.length) { 
     res.json({booklist : result}); 
     } else { 
     res.send('No documents found'); 
     } 
     //Close connection 
     db.close(); 
    }); 
    } 
    }); 
}); 

Hier ist meine Client-Seite (Angular JS)

function booksController($scope) 
{ 
    $http.get("http://localhost:3000/thelist/data").success(function(data) { 
    $scope.book=10; //THIS WORKS 
    $scope.table= data; 
}); 
} 

Grundsätzlich möchte ich $ scope.table, um alle Daten von meinem Server zu haben. Irgendwelche Ideen, warum das scheitert?

UPDATE: Beim Versuch einige Konsolen-Log-Prüfungen, fand ich heraus, dass die Anfrage router.get('/thelist/data', function(req, res) nicht von der Angular Controller aufgerufen wird.

+0

Sind Sie sicher, dass Ihr Node-Code korrekt geschrieben wurde, d. H., Haben Sie Komponententests? Vielleicht möchten Sie den Code, der die Arbeit erledigt, umgestalten, ihn in ein separates Skript oder Modul stecken und testen, ob er richtig funktioniert - dh das Problem isolieren, jetzt könnte der angulare Aufruf fehlschlagen oder könnte es sein Dein Skript funktioniert nicht richtig. –

+0

Konnte Sie die Datenantwort, die von der HTTP-Anfrage kommt, trösten? – Wcan

+0

Das einzige Problem, auf das ich stoße, ist, dass 'router.get ('/ thelist/data', function (req, res)' niemals vom Angular Controller aufgerufen wird. –

Antwort

0

Meine Client-Seite Controller war falsch sagen sollten. Hier ist der richtige.

app.controller('booksController',['$scope','$http', 
    function($scope,$http) { 
     $http.get("http://localhost:3000/thelist/data").success(function(data) { 
      $scope.book=data; 

     }); 
    }]); 
0

res.json({booklist : result});

nach Ihrem Code, den Sie Ergebnis in booklist Attribute

Daher senden die beim Lesen Sie $scope.table= data.booklist;

+0

das gibt immer noch Null –

+0

können Sie hinzufügen, Konsole log? –

+0

Hallo Rohit: Ich denke, das Problem ist, dass diese Anfrage 'router.get ('/ thelist/data', Funktion (req, res) 'nicht sein wird Der –

Verwandte Themen