Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t访问Javascript异步/await try/catch客户机代码中的res.statusMessage以读取从express后端引发的异常_Javascript_Exception_Axios_Http Status Codes_Status Message - Fatal编程技术网

Can';t访问Javascript异步/await try/catch客户机代码中的res.statusMessage以读取从express后端引发的异常

Can';t访问Javascript异步/await try/catch客户机代码中的res.statusMessage以读取从express后端引发的异常,javascript,exception,axios,http-status-codes,status-message,Javascript,Exception,Axios,Http Status Codes,Status Message,Chrome可以读取服务器提供的消息(70100没有找到项目),但是当我console.log(err.message)时,我刚刚得到请求失败,状态代码为400 客户端代码: const doFetch = async () => { try { const {data} = await axios.post('/docs/query/project', {projectId: '70100'}); console.log(data);

Chrome可以读取服务器提供的消息
(70100没有找到项目)
,但是当我
console.log(err.message)
时,我刚刚得到
请求失败,状态代码为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可以阅读我的信息,但我不知道如何向用户显示它,这让人很恼火。很明显,这条消息已经传到了浏览器,我想知道如何在我的客户端代码中访问它!提前谢谢

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


客户端上的Live and learn

err.response.statusText
包含服务器上的res.statusMessage中设置的文本


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

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);
  }
}

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

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);
  }
}

检查“err”-对象,它可能设置了“err.response”。更多信息:检查“err”-对象,它可能设置了“err.response”。更多信息:“生活和学习”“生活和学习”