Javascript axios无法访问错误消息

Javascript axios无法访问错误消息,javascript,node.js,error-handling,axios,Javascript,Node.js,Error Handling,Axios,我有一个使用axios get方法的函数,在返回的函数中,我添加了错误处理,以处理我尝试连接的服务被禁用的情况 axios.get('/someurl') .then(() => { // this does not matter }) .catch((err) => { logger.error(TAG, 'postCreateVm', err); return reply(Boom.forbidden(err

我有一个使用axios get方法的函数,在返回的函数中,我添加了错误处理,以处理我尝试连接的服务被禁用的情况

axios.get('/someurl')
    .then(() => {
        // this does not matter
    })
    .catch((err) => {
        logger.error(TAG, 'postCreateVm', err);
        return reply(Boom.forbidden(err.message));
    });
当我使用curl时,我可以看到消息,响应状态为403:

# curl -X GET localhost:3000/someurl
{
    "message": "abort"
}
问题是,当我尝试访问“message”属性时,我什么也得不到,但我知道它就在那里!(我也尝试过使用err.response.data,但也没有成功)

根据文档,我应该能够访问它:


访问此消息的正确方法是什么?

我查看了他的代码,似乎正确的响应出现在错误中,但在axios中,solite.js使用一般响应来屏蔽它。您可以通过将catch块中的error对象记录为stringized JSON来查看服务器响应:

console.log('caught:::', JSON.stringify(response, null, 2))
因此,在我的例子中,我通过访问返回的错误来修复它,如下所示:

error.response.data.message

我的catch函数接收的是响应属性,而不是错误对象。所以,要访问我使用过的消息:

err.data.message

它还取决于服务器端。我的服务器端使用Python和Flask,结果显示错误消息没有发送(我有一个try catch,在catch块中我重新引发了相同的异常)。在注册了一个错误处理程序(如此处所述)后,可以访问错误消息(如下面的回答所示)。