返回的资源对象而不是Mongoose.count值

时间:2015-11-14 18:27:30

标签: javascript angularjs node.js mongoose meanjs

我在尝试从我的mean.js应用程序中的后端API中的函数中检索Mongoose.count值时遇到了一些麻烦。就我所见,所有内容都正确路由,并且似乎工作得很好,直到我到达前端角度代码并尝试通过服务和$资源从API检索数据。

这是我的后端API函数,用于检索特定类别中的列表计数,其中类别作为参数正确传递。

exports.getListingCountForSpecificCategory = function(req, res, next, category) {
    Listing.count({
        category: category,
        quantityAvailable: { $gt: 0 },
        listingActive: true
    }, function(err, count){
        if(err) {
            console.log(err);
        } else {
            console.log(category + ': ' + count);
            res.jsonp(count);
        }
    });
}; 

这在console.log()

中正确运行
console.log(category + ': ' + count);

正确返回类别计数。所以,一切正常!

直到我在前端检索带有角度的计数值。这是我写的函数:

$scope.listingsCount = function(category) {
    $scope.catCount = Listings.listingsCategoryCount.query({
        category: category.alias
    });

    $scope.catCount.$promise.then(function(count){
        category.listingCount = count;
    });
};

当运行此函数并将类别对象传递给它时,而不是检索计数值,例如14,似乎检索资源承诺对象,计数值无处可见。我已经查看了几次代码并且不能为我的生活找出原因。

这是我正在使用的服务,以防你需要看到它。

listingsCategoryCount: $resource('listingscount/:category', {
    category: '@_category'
}, {
    query: {
        method: 'GET',
        isArray: false
    }
}),

对我来说,为什么没有返回计数值是个谜。当然,我可能会错误地解决这个问题。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

https://docs.angularjs.org/api/ngResource/service/ $资源:

  

成功时,使用相同的资源实例或集合对象解析promise,并使用来自服务器的数据进行更新。

将此更改:res.jsonp(count);更改为res.jsonp({ count: count });,它应该有效:您将获得一个Resource对象,其中包含属性count