为了账号安全,请及时绑定邮箱和手机立即绑定

无法访问 Javascript async/await try/catch 客户端代码中

无法访问 Javascript async/await try/catch 客户端代码中

白衣非少年 2021-12-23 19:59:53
Chrome 可以读取服务器提供的消息,(No project found for 70100)但是当console.log(err.message)我刚收到时Request failed with status code 400客户端代码:const doFetch = async () => {      try {          const {data} = await axios.post('/docs/query/project', {projectId: '70100'});          console.log(data);          setFetched(data);      } catch (err) {        console.log(err.message);      }    }服务器代码:try {        const docs = await docsDb.getProject(projectId);        res.json(docs);    } catch(err) {        res.statusMessage = `No project found for ${projectId}`;        res.status(400).end();    }Chrome 可以读取我的消息很烦人,但我不知道如何向用户显示它。显然,该消息已到达浏览器,我将不胜感激有关如何在我的客户端代码中访问它的一些提示!提前致谢。
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

所述statusMessage在节点响应中发送面在Axios公司响应作为statusText属性。您可以通过查看err.responseAxios 错误的属性来查看与失败请求关联的响应对象。不过要小心;如果由于错误与连接失败等相关err.response而未发出 HTTP 请求,则不存在。


const doFetch = async () => {

  try {

    const {data} = await axios.post('/docs/query/project', {projectId: '70100'});

    setFetched(data);

  } catch (err) {

    const message = err.response

      ? `Request failed with ${err.response.status}: ${err.response.statusText}`

      : err.message;

    console.error(message);

  }

}


查看完整回答
反对 回复 2021-12-23
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

err.response.statusText在客户端上包含res.statusMessage在服务器上设置的文本。

活到老,学到老


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号