Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Node.js 使用axios从NodeJS express应用程序捕获错误消息_Node.js_Reactjs_Express_Axios - Fatal编程技术网

Node.js 使用axios从NodeJS express应用程序捕获错误消息

Node.js 使用axios从NodeJS express应用程序捕获错误消息,node.js,reactjs,express,axios,Node.js,Reactjs,Express,Axios,我有一个应用程序在后端使用NodeJS,特别是expressframework来服务API路由。我的客户端是用ReactJS编写的,使用axios发出API请求 第一次使用axios软件包时,我找不到如何从响应中访问错误消息 My API作为错误响应返回: res.status(404).send({ error: 'Error Message' }); 在axios中,我有: axios.post('/api/users', newUser) .then((user) => {

我有一个应用程序在后端使用NodeJS,特别是expressframework来服务API路由。我的客户端是用ReactJS编写的,使用
axios
发出API请求

第一次使用axios软件包时,我找不到如何从响应中访问错误消息

My API作为错误响应返回:

res.status(404).send({ error: 'Error Message' });
axios
中,我有:

axios.post('/api/users', newUser)
  .then((user) => {
    console.log(`User created: ${JSON.stringify(user)}`);
  }).catch((err) => {
    console.log(`Error : ${JSON.stringify(err)}`);
  });
console.log(`Error:${JSON.stringify(err)}')
打印:

{
  "message": "Request failed with status code 404",
  "name": "Error",
  "stack": "Error: Request failed with status code 404\n    at createError (http://localhost:3000/static/js/0.chunk.js:13853:15)\n    at settle (http://localhost:3000/static/js/0.chunk.js:14074:12)\n    at XMLHttpRequest.handleLoad (http://localhost:3000/static/js/0.chunk.js:13328:7)",
  "config": {
    "url": "/api/users",
    "method": "post",
    "data": "someData",
    "headers": {
      "Accept": "application/json, text/plain, */*",
      "Authorization": "Bearer xxxxx",
      "Content-Type": "application/json;charset=utf-8"
    },
    "transformRequest": [
      null
    ],
    "transformResponse": [
      null
    ],
    "timeout": 0,
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
    "maxContentLength": -1
  }
}
我在服务器的响应消息中找不到
err
对象,我甚至尝试过:

res.status(404).json({ error: 'Error Message' });

没有成功。

Per,尝试访问
catch
块中的
err.response

Per,尝试访问
catch
块中的
err.response

err.response将有一个对象
{error:'error Message}
,因此您可以使用
err.response.error
访问该对象。还要确保
err.response.error
存在,因为如果它不存在,并且您尝试访问它,它将在catch中抛出一个错误,说明
err.response.error未定义

axios.post('/api/users', newUser)
  .then((user) => {
    console.log(`User created: ${JSON.stringify(user)}`);
  }).catch((err) => {
   if(err.response.error)
    console.log(`Error : ${JSON.stringify(err.response.error)}`);
  });

err.response
将有一个对象
{error:'error Message'}
,因此您可以使用
err.response.error
访问该对象。还要确保
err.response.error
存在,因为如果它不存在,并且您尝试访问它,它将在catch中抛出一个错误,说明
err.response.error未定义

axios.post('/api/users', newUser)
  .then((user) => {
    console.log(`User created: ${JSON.stringify(user)}`);
  }).catch((err) => {
   if(err.response.error)
    console.log(`Error : ${JSON.stringify(err.response.error)}`);
  });

谢谢,我可以在err.response.data中找到。expressjs作为响应发送的所有内容都位于dataobject中,很高兴我能提供帮助!谢谢,我可以在err.response.data中找到。expressjs作为响应发送的所有内容都位于dataobject中,很高兴我能提供帮助!