在express.js中覆盖“请求失败并显示状态代码”

时间:2020-06-16 16:22:05

标签: node.js express http axios

我已经在堆栈溢出中阅读了有关此问题的大多数问题,没有找到任何可行的解决方案。

我要覆盖express.js在status(xxx).send({})命令中生成的“状态码为XXX的请求失败”消息

示例:

服务器代码:

res.status(990).send({
  type: "error",
  status: 999,
  message: "The external api blocked the answer.",
});

客户代码:

//client reception:
//First: I set up axios config
  var config = {
method: "get",
url: url,
headers: {
  "Content-Type": "application/json",
  Authorization: "Bearer " + token,
},
params: json, };

然后我可以这样运行它(也在客户端)

   try{const answer = await axios(config); // and stuff if works
} 
   catch(err) { 
    return { res: err.response, message: err.message, type: "error" };
} 

我期望的是 err.message(来自服务器)为:外部api阻止了答案

我得到的:

  1. “ err.message”为“请求失败,状态码为999”
  2. 我进入err.response有效负载,并在err.response.data.message中获得好消息

所以,我可以这样做

message: err.response.data.message

但是我希望err.message被服务器中的err.response.data.message 覆盖。客户端必须进行0自定义才能获得错误。

有什么想法吗?

0 个答案:

没有答案