【问题标题】:Expected response to contain an object but got an array for GET action预期的响应包含一个对象,但得到了一个用于 GET 操作的数组
【发布时间】:2015-04-01 21:58:46
【问题描述】:

我收到此错误“Error: [$resource:badcfg] Error in resource configuration for action 'get'. Expected response to contain an object but got an array

我不知道如何解决它。我有这项服务

angular.module('messages').factory('Messages', ['$resource',
    function ($resource) {
        return $resource('api/messages/:username', {
            username: '@username'
        });
    }]);

这个在控制器中:

    $scope.findOne = function () {
        $scope.messages = Messages.get({
            username: $routeParams.username
        });

        console.log($scope.messages);
    };

对于这条路线,我在 API 控制器中有这个

exports.read = function (req, res) {
    res.json(req.message);
};

我知道我必须使用 $resource action isArray = true,但我不知道该放在哪里。我试图做这样的事情:

angular.module('messages').factory('Messages', ['$resource',
    function ($resource) {
        return $resource('api/messages/:username', {
            username: '@username'
        }, 
            {'query': {method: 'GET', isArray: true}});
    }]);

但没有结果,仍然是同样的错误。

【问题讨论】:

  • 使 isArray 为 false
  • 是的 @Anita {'query': {method: 'GET', isArray: false}}); 因为您的响应是一个对象而不是数组。

标签: javascript angularjs node.js angular-services


【解决方案1】:

在您的控制器中:

$scope.findOne = function () {
        $scope.messages = Messages.query({
            username: $routeParams.username
        });

        console.log($scope.messages);
    };

query 而不是get,应该解决它。

【讨论】:

    【解决方案2】:

    使用 Messages.query(...) 代替方法 get()

    【讨论】:

      【解决方案3】:

      你所做的是正确的,但是你使用了你刚刚创建的方法('query'),所以调用看起来像这样:

      $scope.findOne = function () {
          Messages.query({
              username: $routeParams.username
          }).$promise.then(function (response) {
              $scope.messages = response;
              console.log($scope.messages);
          });
      
      };
      

      【讨论】:

        猜你喜欢
        • 2015-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        • 2014-05-14
        • 2015-03-11
        • 1970-01-01
        相关资源
        最近更新 更多