【发布时间】:2021-11-11 20:24:30
【问题描述】:
目前我的 Api 正在返回一个对象而不是数组中的一个对象,但是我似乎无法区分这两种路由之间的区别以及为什么一个会返回所述数据数组而不是另一个。
例如:
router.get('/caseDetail/:id', (req,res) => {
db.caseDetail.findOne({
include : [db.Part,db.Fault,db.Disposition,db.Contact,db.Site]
}).then((response) => {
res.json(response);
}).catch((error) => {
console.table([stack.error,stack.id,error])
})
})
上面的路由返回一个数据数组,而下面的只返回一个对象
router.get('/caseDetail/:caseName', (req,res) => {
db.caseDetail.findAll({
include : [db.Part,db.Fault,db.Disposition,db.Contact,db.Site],
where : {
caseName:{
[Op.like]: req.params.caseName}
}
}).then((response) => {
console.log(response);
res.json(response)
}).catch((error) => {
console.log(error);
})
})
-------------- 上下文------------ ----------------
我已经多次制定了这种方法,即使在其他脚本文件中也是如此,但我没有被要求以这种方式解析数据,我在看这里有什么变形吗?我错过了 JSON.parse();这里? Github
try {
const items = await axios.get(`/api/caseDetail/:caseName` + caseName);
console.log(items.data);
$tbody.empty()
items.data.forEach((item) => {
console.log(item);
返回结果
{id: 2, caseName: "1 - Fenway Park - 1", createdAt: "2021-07-27T18:13:55.000Z", updatedAt: "2021-07-27T18:13:55.000Z", UserId: 1, …}
错误信息
TypeError: items.data.forEach is not a function
at callSearchResults (searchInventory.js:29)
【问题讨论】:
-
谢谢。看起来像一个对象,所以你不能使用 forEach。
-
这些结果是在调用我的 API 路由后返回的,给了我数据,但它不会循环遍历它,确保只有 1 个项目被返回,因为数据库中只存在一个项目时刻,但此错误不应持续存在。
-
如果要使用 .forEach() 循环,则需要以数组形式返回对象
-
这是一个对象数组,您具体看到的控制台是 items.data 的日志
-
您显示的日志不是数组。而是一个对象。
标签: javascript jquery foreach axios sequelize.js