У меня есть небольшое приложение для хранения списка эпизодов. У меня есть Серии Серий, Сезоны и Эпизод стола. Сезоны стола получили поле "серия", которое имеет тип ObjectId of Serie. Теперь у меня есть список выбора со списком элементов Serie, когда я выбираю один элемент из раскрывающегося списка, метод getSeasons запускается, но я получаю ошибку 400 Bad Request.
Мои файлы:
app.route('/serie/:serieId/seasons')
.get(seasons.seasonsList);
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);
}
});
};
var Seasons = $resource('/serie/:serieId/seasons', {serieId: '@id'});
Seasons.get({'serieId': $scope.serie}, function (data) {
console.dir(data);
});
Но, несмотря на то, что у меня установлен маршрут, я получаю 400 плохих запросов... Почему?
Я хочу добиться того же, что и при вводе текста в монго:
db.seasons.find({'serie': new ObjectId('SerieId')})
Проблема была в параметрах. Решение проблемы состоит в том, чтобы изменить метод seasonsList, чтобы получить параметр from 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);
}
});
};
$scope.serie._id
вместо экземпляра.