我有一条快速路由,返回400状态和错误消息。我想在客户端警告完整的错误消息,但是当我发出警报时警报只显示“对象对象”。我检查了该对象,但是我没有看到从服务器登录到终端的完整错误消息。
在服务器上,错误消息显示“djhbf未定义”,因为我输入了一些随机字符来抛出错误消息。在客户端,该对象具有一些属性,但它们都不包含错误消息“djhbf未定义”。与错误消息最接近的是“status-text:bad request”。如何在客户端检索实际的错误消息“djhbf未定义”?
这是我的server.js代码,它在promise的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);
});
}
答案 0 :(得分:2)
更新
这不是一个明确的问题。 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部分。