首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的JSON response API中添加total (int)字段

如何在我的JSON response API中添加total (int)字段
EN

Stack Overflow用户
提问于 2019-10-17 18:32:51
回答 4查看 151关注 0票数 0

我正在用Express.js开发一个应用编程接口。在getAll函数中,我希望返回一个记录数组以及记录总数。这是我返回的响应:

代码语言:javascript
复制
const users = await User.getAll()
const total = users.length
const response = users
return res.json(response).status(200)

其格式为[{user1},{user2},{user3}]。如何将总计附加到此格式的{ data: {Record[]}, total: {int} }

我试过了,但它在每个用户中添加了一个带有序号的键。

代码语言:javascript
复制
const users = await User.getAll()
const total = users.length
const response = {
  ...users,
  total
}
return res.json(response).status(200)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-10-17 18:37:20

代码语言:javascript
复制
const users = await User.getAll();
return res.json({ data: users, total: users.length }).status(200);
票数 0
EN

Stack Overflow用户

发布于 2019-10-17 18:36:57

您正在对象中使用数组扩展,其代码为:

代码语言:javascript
复制
const response = {
    ...users,
    total,
}

通过这样做,您试图将数组的所有元素添加到一个对象中,这是不可能的。但是您可以使用您自己建议的格式:

代码语言:javascript
复制
const response = {
    data: users,
    total: total,
}

return res.json(response).status(200);
票数 0
EN

Stack Overflow用户

发布于 2019-10-17 18:44:36

...users在这里造成了痛苦。当您使用扩展操作符时,它允许迭代器(这里是您的users对象)展开。下面应该可以按照你期望的方式工作。

代码语言:javascript
复制
const users = await User.getAll()
const total = users.length
const response = {
  users,
  total
}
return res.json(response).status(200)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58430508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档