Strongloop API GET请求不返回项目/记录计数

时间:2015-07-06 06:29:20

标签: strongloop

我是strongloop api的新手,但我在使用其他api方面有一些经验。 使用strongloop api构建分页功能时,我发现 strongloop api不会返回结果中的总记录,也不会在响应正文和标题中返回

我一直在寻找与此类似的功能。 What’s the best RESTful method to return total number of items in an object?

我的问题是 使用strongloop api还有其他方法可以实现相同的效果吗?

我已经检查了strongloop api和stackoverflow问题,但没有得到 结果令人满意。

我认为这是非常基本的功能,必须在那里实施。任何建议都会有帮助。感谢

2 个答案:

答案 0 :(得分:2)

要查找记录总数, 您可以使用REST API或NodeJS调用。其他选项也可以在SDK中使用,例如Angular SDK,以及查询格式的微小变化

REST API:

http://0.0.0.0:3001/api/brands/count

节点

    var Brand = app.models.brand;
    Brand.count(function (err, count) {
        console.log(count);
        }
    });

要进行分页,请使用:{"跳过":40,"限制":10}例如:

    var Brand = app.models.Brand;
    Brand.find({
        skip: 30,
        limit: 20
    }, function (err, data) {
        res.send(data);
    })

这将为您提供分页数据。您还可以使用where条件,排序等...结合上述代码。

干杯!

答案 1 :(得分:0)

如果您想要的只是计数,并且您不介意只是为了获得计数而发出第二个请求,那么Strongloop确实对此有所支持:api/<YOUR-MODLE-NAME>/count

但是我假设你想要的只是一个请求并获得计数和数据,如果是这种情况,那么你可以使用远程钩子在标题中添加这些额外的信息,或者在结果本身。

要在标题中添加总计数,请查看GitHub中的此主题,有人发布了代码示例以在返回的标题中添加X-Total-Count: https://github.com/strongloop/loopback/issues/1411

您还可以在模型中使用afterRemote挂钩,并将返回的结果更改为在某处添加计数。这是一个例子:

module.exports = function (Model) {
    Model.afterRemote('find', function (ctx, model, next) {
        Model.count().then(function (totalCount) {
            ctx.result = {
                total: totalCount,
                items: model
            };
            next();
        });
    });
};

假设您使用的是Strongloop API v3,请查看其文档的远程钩子会话:https://loopback.io/doc/en/lb3/Remote-hooks.html

希望这有帮助。