公共服务器和服务器控制器如何在MEAN.io中相互关联

时间:2014-09-09 20:15:27

标签: javascript angularjs express mean.io

从MEAN.io开始,他们提供了一个样本“文章”模型,这个模型基本上类似于带有标题和正文的博客文章。

该示例附带一个index.html文件,当您导航到该文件时,该文件会显示文章列表。在此文件中,它调用公共控制器中定义的find方法

$scope.find = function() {      
  Articles.query(function(articles) {
     $scope.articles = articles;
  });      
};

我看到一个定义了以下方法的服务器控制器

/**
 * List of Articles
 */
exports.all = function(req, res) {
  Article.find().sort('-created').populate('user', 'name username').exec(function(err, articles) {
    if (err) {
      return res.json(500, {
        error: 'Cannot list the articles'
      });
    }
    res.json(articles);
  });
};

当我向服务器控制器中的find方法添加约束时,我可以有效地为查询定义where过滤器,这将反映在视图中。

这两个控制器之间是否存在一些由框架隐式处理的连接?我找不到任何关于所有这些是如何相关的信息。

1 个答案:

答案 0 :(得分:0)

不,没有。 如果有过滤连接,代码必须像这样

/**
 * List of Articles
 *  use GET /api/v1/articles?published=true to filter
 */
exports.all = function(req, res) {
  Article
        .find(req.query) //this is filtering!
        .sort('-created')
        .populate('user', 'name username')
        .exec(function(err, articles) {
    if (err) {
      return res.json(500, {
        error: 'Cannot list the articles'
      });
    }
    res.json(articles);
  });
};