【问题标题】:MeanJS - get list of items by nested model idMeanJS - 通过嵌套模型 id 获取项目列表
【发布时间】:2023-04-04 09:44:01
【问题描述】:

我有一个用于存储剧集列表的小应用程序。我有表 Serie、Seasons 和表 Episode。 Table Seasons 的字段“serie”是 Serie 的 ObjectId 类型。现在我有一个带有 Serie 项目列表的选择列表,当我从下拉列表中选择一个项目时,方法 getSeasons 被触发,但我收到 400 Bad Request 错误。

我的文件:

  1. series.server.routes.js

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

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

        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')})

【问题讨论】:

  • 尝试:$scope.serie._id 而不是实例。
  • @AdolAurion 我有正确的 ID。这与身份无关。这是关于查询或我错过了什么。
  • 我实际上不知道你在哪里创建这个函数。但它应该在你的 node.js 文件中(不是角度的),我通常使用Model.find() 函数,而不是query。检查一下。

标签: javascript angularjs mongodb mongoose meanjs


【解决方案1】:

问题出在参数上。解决问题的方法是更改​​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);
    }
  });
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多