【发布时间】:2020-05-13 23:18:12
【问题描述】:
我创建了这个 api 来发回一个我填充了数据的数组:
router.get('/getDevice/:instanceId', (req, res) => {
let deviceSum = [];
SingleAxis.findAll({where: {instanceid: req.params.instanceId}})
.then(singleAxis => {
if (singleAxis) {
for (let i = 0; i < singleAxis.length; i++) {
SingleAxisSegment.findAll({where: {singleAxisId: singleAxis[i].singleAxisId}})
.then(singleAxisSegments => {
let sum = 0;
for (let i = 0; i < singleAxisSegments.length; i++) {
sum += singleAxisSegments[i].counterAmount;
}
deviceSum.push({label: singleAxis[i].name, value: sum});
})
.catch(err => {return err});
}
console.log(deviceSum);
res.status(200).send(deviceSum);
} else {
res.status(200).json({message: 'Nothing found'});
}
})
.catch(err => res.status(400).json({message: 'Error', err}));
});
console.log(deviceSum) 打印出以下数据:
[
{ label: 'Z5', value: 4404253 },
{ label: 'X9', value: 4423724 },
{ label: 'D6', value: 5506045 }
]
所以数组包含数据,但是当我用休息客户端测试 api 时,我只得到一个空数组。
如何将数组发送回客户端?
【问题讨论】:
-
如果您发送
string而不是array会怎样。您是否使用“休息客户端”获得它? -
deviceSum是通过调用某种承诺来填充的吗?如果是这样,那可能就是原因 -
你能在这里发布所有的获取电话吗?这肯定是您填充数组的地方的承诺
标签: javascript arrays node.js express