$ resource:badcfg动作`query`的资源配置错误。预期响应包含一个数组但有一个对象

时间:2018-08-16 07:26:42

标签: javascript angularjs

我正在处理一些基于angularjs,nodejs,html等文件。 我在浏览器控制台中遇到此错误。

**

  

”错误:$ resource:badcfg响应与配置的参数不匹配   操作query的资源配置错误。预期的反应   包含一个数组但有一个对象(请求:GET   %2Fpacs%2Fgetstats)”。

**

我正在尝试从某个.json文件中获取一组信息。这是附加的代码(来自angularjs文件),该代码调用服务(这是另一个nodejs文件)以获取所需的信息。但是在由相应的html呈现的浏览器页面上,我遇到了前面提到的错误。我已经附上了两个JS代码片段。

    $scope.refreshStats = function() {

    for (var i = 0; i < $scope.Processes.length; i++) {

        (function (i) {
            $scope.TotalImages = 0;
            $scope.TotalImagesTo = 0;
            $scope.TotalImagesFailed = 0;
            var res = $resource("/api1/getstats");
            var resp = res.query({process: $scope.Processes[i]});

            resp.$promise.then(function (response) {
                for (var k = 0; k < response.Statistics.WStats.length; k++) {
                    $scope.TotalImages += $scope.Processes[i].Statistics.WStats[k].TotalTasksExec;
                }

这是节点js代码片段...当我记录此输出时,它会正确显示在终端中。但这没有达到调用函数..请帮帮我。

httpApp.get('/api1/getstats', function(req, res, next) {
    try {
        fs.readFile(confg.statspath + "stats-" + req.query.process + ".json", function (err, data) {
            try {

                var msgs = JSON.parse(data);
                var msgs2 = [];
                msgs2 = JSON.stringify(msgs);
                res.end(msgs2);
            }
            catch (err) {
                res.end(err.toString());
            }
        });
    }
    catch (err) {
        res.end(err.toString());
    }});

1 个答案:

答案 0 :(得分:0)

经过数小时的调整后,它才能正常工作。这是为我解决的问题。我必须同时修改控制器和服务。

我已附上我所做的更改:

  

更改为控制器:

...
var resp =  res.get({process: $scope.Processes[i]});
resp.$promise.then(function (response) {
    if(response != undefined) {
 ...
  

更改服务:

...
fs.readFile(confg.statspath + "stats-" + req.query.process + ".json", function (err, data) {
    try {
        var msgs = JSON.parse(data);
        var r  = JSON.stringify(msgs);
        res.end(r);
    }
...