如何从客户端的Node和Express服务器获取完整的错误消息?

我有一个快速路由,返回400状态和错误消息。 我想提醒在客户端的完整的错误消息,但警报只有当我提醒它时说“对象对象”。 我检查了这个对象,但是我看不到从服务器上看到的完整的错误信息。

在服务器上的错误消息说,“djhbf没有定义”,因为我input一些随机字符引发错误信息。 在客户端,对象有一些属性,但没有包含错误消息“djhbf未定义”。 最接近错误信息的是“status-text:bad request”。 如何在客户端检索实际的错误消息“djhbf未定义”?

这里是我的server.js代码,它发送一个承诺的catch块中的错误消息:

app.post('/sendEmails', function(req, res, next) { axios.get(FEED_URL) .then(data => { let jobs = data.data.jobs; fetchClients(jobs, 'email').then(() => { res.sendStatus(200); }) .catch((err) => { console.log(err); res.status(400).json(err); }) }) .catch(error => { console.log(error); }); }); 

这里是提醒错误的客户端代码:

 sendEmails() { axios.post("/sendEmails") .then(res => { this.setState({ emailsSent: true, smsSent: false }); }) .catch((err) => { console.log(err); alert(err); }); } 

更新

这不是一个明确的问题。 axios装饰错误对象。 您只需要将您的客户端console.log更改为: console.log(err.response.data);

您还需要更新您的服务器端逻辑,因为您在两侧都使用了axios 。 尝试res.status(400).json({msg: 'There was a problem with your request'});

如果这样做的话,你只需要在服务器端的err对象中钻取,看看你想要发回给客户端。

请参阅axios文档的error handling部分。