将值从Server传递给Client |节点到Angular

时间:2016-06-27 19:31:09

标签: javascript angularjs node.js mean

我对MEAN很新。我正在尝试从Node向我的Angular Controller发送数据集。但是,角度控制器未接收到正确的信息并导致为空。

我的观点称为booklist.jade

这是我的服务器端(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();
    });
  }
  });
});

这是我的客户端(Angular JS)

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

基本上,我希望$ scope.table从我的服务器获取所有数据。关于为什么失败的任何想法?

更新:在尝试一些控制台日志检查时,我发现Angular Controller没有调用请求router.get('/thelist/data', function(req, res)

2 个答案:

答案 0 :(得分:0)

res.json({booklist : result});

根据您的代码,您发送的结果为booklist属性

因此,在阅读时,您应该说$scope.table= data.booklist;

答案 1 :(得分:0)

我的客户端控制器错了。这是正确的。

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

        });
    }]);