目前我的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);
})
})
--------------------------<上下文strong>----------------------------
我已经制定了这个方法多次,甚至在其他脚本文件,但我还没有被要求以这种方式解析数据,是什么形状在这里,我看?我错过了JSON.parse();在这里吗?Github上下文strong>
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)
如果我理解正确,这是您从请求中收到的结果:
{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));
forEach()是为数组设计的,但是你也可以像这样将集合和对象类型转换为数组…
var I=[...items];
var D=[...items.data]
现在你应该没事了,试试…
I.data.forEach((item) => {}
D.forEach(() => {}