为什么一个 API 响应只返回一个对象和一组对象?

Why is one API response returning just an object over and array of objects?

目前我的 Api 是 return 对象而不是数组中的对象,但是我似乎无法分辨这两条路线之间的区别以及为什么 return表示数组中的数据超过了其他。
例如:

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])
})
})

上面的路由 return 是一个数据数组,而下面的 return 只是一个对象

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() 是为数组设计的,但你可以像这样将集合和对象类型转换为数组...

var I=[...items];

var D=[...items.data]

现在你应该没问题了,试试...

I.data.forEach((item) => {}

D.forEach(() => {}

如果我理解正确,这就是你收到的请求结果:

{id: 2, caseName: "1 - Fenway Park - 1", createdAt: "2021-07-27T18:13:55.000Z", updatedAt: "2021-07-27T18:13:55.000Z", UserId: 1, …}

然后您需要从中取出条目并像这样迭代它们:

for (const [key, value] of Object.entries(items)) {
  console.log(`${key}: ${value}`);
}

或者像这样:

Object.entries(items).forEach(([key, val]) => console.log(key, val));