Javascript 从JSON服务器端点获取记录数
我正在创建一个以JSON服务器为后端的模拟应用程序,我想知道是否有可能在不加载所有记录的情况下获得一个端点包含的记录总数?假设db.json文件看起来像下面的json片段,如果可能的话,我如何发现端点只有一条记录而不获取记录本身Javascript 从JSON服务器端点获取记录数,javascript,json,Javascript,Json,我正在创建一个以JSON服务器为后端的模拟应用程序,我想知道是否有可能在不加载所有记录的情况下获得一个端点包含的记录总数?假设db.json文件看起来像下面的json片段,如果可能的话,我如何发现端点只有一条记录而不获取记录本身 { "books": [{ "title": "The Da Vinci Code", "rating": "0"}] } 您将编写另一个返回记录数的端点。通常,您可能还希望限制和偏移的端点与分页一起使用。您有三个选
{
"books": [{
"title": "The Da Vinci Code",
"rating": "0"}]
}
您将编写另一个返回记录数的端点。通常,您可能还希望限制和偏移的端点与分页一起使用。您有三个选项。我向您推荐第三个:
{
计数:157,
行:[……数据]
}
3的好处是它的所有在一个端点。它还使您可以在将来添加
skip
和take
参数,以允许对结果数据进行分页。您只需检索X-Total-Count
标题即可
这是启用分页时JSON服务器返回的响应标题的屏幕截图,即使用\u page
参数(例如localhost:3000/contacts?\u page=1
)
无论何时获取数据,json服务器都会默认返回总计数(它有一个
x-total-count
属性:
例如:
axios
.get("http://localhost:3001/users", {
params: {
_page: 1,
_limit: 10
}
})
.then(res => {
console.log(res.data); // access your data which is limited to "10" per page
console.log(res.headers["x-total-count"]); // length of your data without page limit
});
我不确定我是否理解正确,你想返回属性数吗?如果是,你可以解析它并返回键数。不,我只是想知道我是否可以使用这样的查询字符串来获得记录总数。文档中没有关于它的内容,所以可能不可能,在这种情况下,我只需要f蚀刻所有记录,并找出有多少记录是这样的。我问这个问题的原因是因为我想使用分页功能,但我不认为如果我不首先获取所有记录就无法获得记录的总数会有什么用处。你能给我一个使用JSON服务器的例子吗?@Happy Koala你找到了吗了解如何编写端点以获取计数和行数?@erwin是的,我确实这样做了!我接受了Ian的第三个建议。有更好的方法吗?w json服务器,在使用_start、_end、_limit时,响应在头中包含一个X-total-count,因此我们在第一个请求中获得总计数……我不再需要将其包含在t中json文件…也许这不再是真的。我在本月早些时候设置了json服务器,当我将所有标题写到控制台时,没有总计数。啊,从文档中可以看出:“添加_start和_end或_limit(响应中包含一个X-total-count标题)”。所以它并不总是存在,就在发送其中一个参数时。
let response = await fetch("http://localhost:3001/books?_page=1");
let total = response.headers.get('X-Total-Count');