我在下面有明确的路由,并且有效。Hovewer,如果Axios由于错误而无法检索任何信息,我将无法通过Res.Send响应。但是我可以看到终端中的错误日志。如何捕获错误?理想情况下,如果无法检索数据,它应该响应"无法连接"。
router.get('/accounts', async (req, res) => {
try {
const response = await axios.get(`${config.url}/accounts`, {
auth: config.auth
});
const data = await response.data.results;
res.json(data);
} catch (e) {
console.log(e);
res.send('Could not connect');
}
});
问题在您的捕获块中,您正在尝试解析圆形JSON对象。我建议使用JSON-Stringify-Safe库解决您的问题:
安装JSON-Stringify-Safe:
$ npm install json-stringify-safe --save
解决方案:
const express = require('express')
const axios = require('axios');
const app = express();
var stringify = require('json-stringify-safe');
app.get('/accounts', async (req, res) => {
try {
const response = await axios.get('someInvalidUrl'); // will throw error
return res.json(response);
} catch (e) {
e = JSON.parse(stringify(e)); // safely parse circular JSON object
res.send(e); // will return error as json
}
});