Can';t访问Javascript异步/await try/catch客户机代码中的res.statusMessage以读取从express后端引发的异常
Chrome可以读取服务器提供的消息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);
(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”。更多信息:“生活和学习”“生活和学习”