【问题标题】:Error: [$resource:badcfg] Error in resource configuration for action `query`. Expected response to contain an array but got an object错误:[$resource:badcfg] 操作“查询”的资源配置错误。包含数组但得到对象的预期响应
【发布时间】:2015-07-04 11:23:37
【问题描述】:

我是 MEAN 堆栈开发的新手,昨天才开始。我正在尝试使用链接到服务器端控制器的资源通过调用从数据库中取回我的数据。但我收到以下控制台错误“错误:[$resource:badcfg] 操作query 的资源配置错误。预期响应包含一个数组但得到一个对象”

角度控制器:

app.
    controller('ArticleCtrl',  function($scope, $location, $resource){

        var articles = $resource('/api/articles');

        articles.query(function(result){

            console.log(result);

        });

        $scope.addnew = function(){

            $location.path("/administrationarea/articles/newarticle");

        }


    });

Server.js:

articlesController = require('./server/controller/article-controller');

app.get('/api/articles', articlesController.list);
app.post('/api/articles', articlesController.create);

服务器端控制器:

var article = require('../models/articleModel');

module.exports.create = function(req, res){

    var art = new article(req.body);
    art.save( function (err, result){

        res.json(result);

    });

}


module.exports.list = function(req, res){

    article.find({}, function (err, results){

        res.json(results);

    });

}

谁能告诉我为什么会发生这种情况,并可能提供解决方案,以便数据以数组而不是对象的形式返回。

【问题讨论】:

    标签: angularjs node.js mongodb


    【解决方案1】:

    错误是因为

    var articles = $resource('api/articles');
    articles.query(function(result){
        // here result should be an array.
            console.log(result);
     });
    

    这里的articles.query 需要一个数组。但不是对象。

    如果你的 api 返回一个对象,那么你应该使用articles.get()。

    articles.get(function(result){
       // here result should be an object but not array
            console.log(result);
        });
    

    $resource.query() 用于从 REST API 获取数组,$resource.get() 用于从 REST API 获取对象。但在这两种情况下,请求类型(/方法)都只是“获取”。

    请参考angularJS documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多