2016-05-20 19 views
1

get要求を特定のルートに送信して、その文字列に基づいて結果を返すために文字列をバックエンドに送信する機能を実行しています。エラー:

ビュー:

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

Ctrlキー:

ここ

Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object

は角部分であります

$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は、フロントエンドからそのルートに送信される仮定された文字列/検索語です。これは、必要な結果をすべて返しています。だから、私はフロントエンドで何か間違っていることをしているようです。

提案がありますか?

答えて

1

サービスでisArray:falseを指定する必要があると思います。

return $resource('/api/search/all', {}, { 
     'query' : {method : 'GET', isArray : false}, 
    }); 
関連する問題