【问题标题】:Pass values from Server to Client | Node to Angular将值从服务器传递到客户端 |节点到角度
【发布时间】:2016-10-29 22:21:15
【问题描述】:

我对 MEAN 很陌生。我正在尝试将数据集从 Node 发送到我的 Angular 控制器。但是,角度控制器没有接收到正确的信息并导致空值。

我的观点叫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 拥有来自我的服务器的所有数据。关于为什么失败的任何想法?

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

【问题讨论】:

  • 您确定您的节点代码编写正确,即您是否进行了单元测试?您可能想要重构完成工作的代码,将其粘贴到单独的脚本或模块或其他任何内容中,并测试它是否正常工作 - 即隔离问题,现在可能是角度调用失败,也可能是您的脚本无法正常运行。
  • 你控制台来自http请求的数据响应了吗?
  • 我面临的唯一问题是 Angular 控制器永远不会调用 router.get('/thelist/data', function(req, res)
  • @Wcanhttp请求函数成功但数据为空

标签: javascript angularjs node.js mean


【解决方案1】:

res.json({booklist : result});

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

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

【讨论】:

  • 仍然给出 null。
  • 可以添加控制台日志吗?
  • 嗨 Rohit:我认为问题在于这个请求 router.get('/thelist/data', function(req, res) 没有被 Angular 控制器调用。
  • 请显示代码是如何显示数据的,@Rohit Shedage 也指出了正确的事情,你为什么不直接做 res.json({result}) 然后按数据获取数据.result 只是为了检查它是否工作
  • 另外,当你说 result.lenght,result.length 是什么?它是在告诉你没有找到文件吗?您需要将 result.length 与至少 1 的结果进行比较,或者直接在 collection.find 中控制结果部分,您就会知道问题出在哪里
【解决方案2】:

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

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

        });
    }]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    相关资源
    最近更新 更多