【发布时间】:2021-12-24 09:45:20
【问题描述】:
我的情况是,我有一个多次调用函数的 POST 路由。如果调用的函数返回错误,我希望请求返回错误,但我不确定如何实现。看这张图片:
这是我的代码:
function POSTcord(lat, lng) {
axios
.post(process.env.SOS_POST_URL + process.env.SOS_POST_CODE, {
batteryLevel: 100,
longitude: lng,
latitude: lat
})
.then(res => {
console.log(`statusCode: ${res.status}`)
})
.catch(error => {
console.error(error.message);
})
}
router.post('/test', async (req, res) => {
let passedCords = req.body;
try {
for (const cord of passedCords) {
POSTcord(cord.lat, cord.lng);
}
res.status(200).json({status:"success", message: "hello!"});
} catch (err) {
console.error(err.message);
res.status(500).send("Server error");
}
});
如果函数POSTcord 在循环中的某处捕获错误,我希望路由/test 返回错误。对此有什么想法吗?我想我可以将res 传递给POSTcord 函数,但这不起作用。感谢您的任何意见:)
【问题讨论】:
-
多个问题:你的
POSTcord函数没有return任何东西,你不是awaitingPOSTcord()调用,即使你做了两个然后.catch(error => { console.error(error.message); })会吞下任何错误并简单地返回undefined。
标签: javascript node.js express for-of-loop