我是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问题,但没有得到 结果令人满意。
我认为这是非常基本的功能,必须在那里实施。任何建议都会有帮助。感谢
答案 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
希望这有帮助。