如何从mongodb获取值到angularjs控制器

时间:2016-08-03 16:31:22

标签: javascript angularjs mongodb mean-stack meanjs

我是Web开发的新手,并开始使用MEAN-Stack(Mongo,Express,Angular,Node)。

简而言之,我想从mongo中获取一个值到我的角度控制器中,在这样的公式中使用mongo中的多个值:

value11*value12 + value21*value22 ...etc

我的问题更详细:

  1. 我已经用字段集写了一些数据到mongo:
  2. HTML代码段

    <fieldset>
    <rzslider rz-slider-model="value11"
              rz-slider-options="slider11.options"></rzslider>
    <md-slider flex md-discrete ng-model="value12" step="1" min="1 max="100 aria-label="rating"></md-slider
    </fieldset>
    

    Controller.js Snippet。 rzslider来自那里https://github.com/angular-slider/angularjs-slider
    来自Angular-Material的md滑块

    $scope.slider11 = { 
      options: { 
        showTicks: true,
        hidePointerLabels: true,
        hideLimitLabels: true,
        stepsArray: [
          { value: 1, legend: 'Very poor' }
          { value: 2, legend: 'Poor' },
          { value: 3, legend: 'Fair' },
          { value: 4, legend: 'Good' }, 
          { value: 5, legend: 'Very Good' }
        ] 
      }
    };
    $scope.value12 = 40;
    //Create new Article object
    var article = new Articles
      value11: this.value11,
      value12: this.value12,
    

    此时一切正常,在mongo中存储设定值。

    1. 在第二步中,我想从数据库中获取值 进入不同的控制器,将它们包括在上面提到的 式。迄今为止唯一的工作就是回忆起像这样的价值观 这在html视图中直接显示:
    2. HTML代码段

      {{article.value11 * article.value12}}
      

      有效,据我所知,多亏了下面的查询。

      Controller snippet

      // Find a list of Articles
      $scope.find = function () {
      $scope.articles = Articles.query();
      };
      

      但最终我想回忆起数据库值并将它们定义为控制器中的新$ scope。

1 个答案:

答案 0 :(得分:3)

因此整个MEAN堆栈背后的想法以及整个前端/后端的想法是你的角度应用程序是前端,你需要对你的Node.js服务进行AJAX调用以连接到MongoDB < / p>

这样想 Angular <---AJAX---> Node <------> Mongo

所以你需要的第一件事就是建立一个休息服务(使用快速框架的帮助),这样就可以了。

app.get('/getMongoData', function(req, res, next) {
     //code to get mongo data with Mongoose

     req.json(DataFromMongo); //returns the data in json format
}); 

您可以在此处使用后端代码使用Mongoose package从Mongo数据库中获取数据,并使用req.json()调用返回发送回来,这是Express的一部分

现在,这一切都可以通过类似

的方式调用Angular控制器中的数据
$http.get('/getMongoData').then(function(response) {
      $scope.myMongoData = response.data;       
});

注意:不要忘记将$http添加到控制器的注射中 app.controller('MyController', ['$scope', '$http', function ($scope, $http) { // code }]);

相关问题