我的角度抛出了我
错误:[$ resource:badcfg]操作
query
的资源配置出错。预期的响应包含一个数组但得到一个对象
我不知道为什么会这样。我有一个学校的数据库,每个学校都有一个城市财产。我想要让一个城市里的所有学校都得到。 在服务器上,我的控制器有一个应该完全按照这个功能执行的功能:
getSchoolByData: function(req, res, next) {
School.find({city: req.params.reqCity}).exec(function (err, collection) {
if (err) {
console.log("Could not load desired school: " + err);
}
res.send(collection);
});
}
在我的客户端,我有一个资源和另一个控制器: 资源:
app.factory('SearchSchoolResource', function($resource) {
var SearchSchoolResource = $resource('/schoolSearchResult/:reqCity', {city: 'reqCity'}, { update: {method: 'PUT', isArray: false}});
return SearchSchoolResource;
});
控制器:
app.controller('SearchSchoolCtrl', function($scope, $routeParams, SearchSchoolResource) {
$scope.schools = SearchSchoolResource.query({city: $routeParams.reqCity});
});
我不知道其中哪一个无法正常工作,我不知道如何检查。我是角度和节点的新手,我花了72个多小时,所以如果有人能告诉我如何解决这个问题,那将是惊人的! 除此之外,我设法归还了所有的学校,并且基于给定身份的单一学校就好了,但是基于城市的返校不合格。
编辑:
如果我只是将城市名称放在查找功能中,如
... find({city: 'name'}) ...
它有效,但是如果我使用req.params.reqCity则没有。我无法弄清楚为什么它不起作用,似乎req.params.reqCity返回的是不同的东西而不是给定的城市名称。尝试使用.ToArray而不是.exec,它不再工作。无法弄清楚req.params.reqCity返回什么,仍然无法弄清楚如何解决这个问题。
答案 0 :(得分:0)
尝试这种方式,它应该工作。除了让我也添加其他操作的语法。
服务:
app.factory('SchoolService',function($resource){
return $resource('/schoolSearchResult/:reqCity',
{
reqCity: '@reqCity'
},
{
'update': { method:'PUT' }
},
{
'get': { method: 'GET', isArray: false }
},
{
'delete': { method: 'DELETE'}
}
);
});
控制器:
app.controller('SearchSchoolCtrl', function($scope, $routeParams, SchoolService) {
var schoolService = new SchoolService();
schoolService.$get({reqCity : $routeParams.reqCity},function(result){
$scope.schools = result;
});
});