MeanJS - 按嵌套模型ID获取项目列表

时间:2015-07-20 22:33:13

标签: javascript angularjs mongodb mongoose meanjs

我有一个小应用程序来存储剧集列表。我有表Serie,Seasons和table Episode。表季节得到了#34; serie"它是Serie的ObjectId类型。现在我已经获得了包含Serie项目列表的选择列表,当我从下拉列表中选择一个项目时,方法getSeasons被触发,但我收到了400 Bad Request错误。

我的档案:

  1. series.server.routes.js
  2. 
    
    app.route('/serie/:serieId/seasons')
        .get(seasons.seasonsList);
    
    
    

    1. seasons.server.controller.js
    2. 
      
      exports.seasonsList = function(req, res, id) {
        Season.find({'serie': id}).exec(function(err, series) {
          if (err) {
            return res.status(400).send({
              message: errorHandler.getErrorMessage(err)
            });
          } else {
            res.jsonp(series);
          }
        });
      };
      
      
      

      1. episodes.client.controller.js
      2. 
        
                var Seasons = $resource('/serie/:serieId/seasons', {serieId: '@id'});
                Seasons.get({'serieId': $scope.serie}, function (data) {
                  console.dir(data);
                });
        
        
        

        但是,尽管我已经设定了路线,但我得到了400个不良请求......为什么会这样?

        我想在mongo中键入相同的内容:

        
        
            db.seasons.find({'serie': new ObjectId('SerieId')})
        
        
        

1 个答案:

答案 0 :(得分:0)

问题是参数。问题的解决方案是更改seasonsList方法以从reqest获取参数,如下所示:



exports.seasonsList = function(req, res) {
  Season.find({'serie': req.params.serieId}).exec(function(err, series) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.jsonp(series);
    }
  });
};