我在我的nodejs应用程序中使用axios将请求发送到另一个服务。
当我发送请求并获得5xx或4xx错误代码作为响应时-axios可以很好地处理请求并将错误返回给客户端。
当请求的结构合理时,它只会挂起,而axios发送的承诺将永远无法解决,从而使客户端无限期地挂起等待响应。
我不知道是什么导致仅有效请求挂起,或者如何进一步调试它。
到目前为止我尝试过的事情-
有关应用版本的一些信息(如果相关)-
axios请求的摘录,出于安全原因已编辑-
const Router = require('express').Router;
const router = Router();
const axios = require('axios').create({
baseURL: 'https://some-service.com'
});
const auth-handler = require('auth-handler');
router.post('/', (req, res) => {
auth-handler.getToken('token-name')
.then(token => {
const body = {
subject: "subject",
body: "body"
};
const options = {
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
}
};
return axios.post('/'+req.body.route+'/endpoint?foo=bar', body, options);
})
.then(response => res.status(response.status).send(response.data))
.catch(error => {
console.error(error);
res.status(error.status).send(error.data);
});
});
答案 0 :(得分:1)
面临类似问题。 Axios会陷入实例(请求)步骤。用URL中的 http 替换 https 可以解决此问题。
答案 1 :(得分:0)
此问题的答案是axios一直在按预期方式兑现承诺,在我的程序的客户端上没有任何指示,只在表格中正确指出了错误。
我添加了2xx响应的指示,现在一切恢复正常。