使用Angular$resource执行获取请求时出错



我正在执行一个函数,以便对指定的路由执行get请求,该路由向后端发送一个字符串,以便返回基于该字符串的一些结果,我得到了以下错误:

错误:[$resource:badcfg]资源配置错误。预期响应包含一个数组,但得到一个对象

这是角度部分:

视图:

<input type="text" data-ng-model="searchStr">
<textarea> {{responseData}} </textarea>

Ctrl:

$scope.$watch('searchStr', function (tmpStr)
{
if (!tmpStr || tmpStr.length == 0)
return 0;

// if searchStr is still the same..
// go ahead and retrieve the data
if (tmpStr === $scope.searchStr) {   
Search.get({ 'search': $scope.searchStr })
.$promise.then(function(data) {
$scope.responseData = data;
})
}
});

服务:

angular.module('MyApp')
.factory('Search', function($resource) {
return $resource('/api/search/:search', {});
});

这就是我在节点部分的内容:

app.get('/api/search/:search', function(req, res, next) {
request.get('http://thetvdb.com/api/GetSeries.php?seriesname=' + req.params.search, function (error, response, body) {
console.log(error, response, body);
res.end(body);
});
});

我知道在后端一切都是正确的,因为如果我从邮递员到http://localhost:3000/api/search/all发帖,其中all是从前端发送到该路由的假定字符串/搜索词,它会返回我需要的所有结果。所以这似乎是我在前端做错了什么。

有什么建议吗?

我认为您需要在服务上指定isArray:false。

return $resource('/api/search/all', {}, {
'query' : {method : 'GET', isArray : false},
});

最新更新