我有一个节点API,使用邮递员进行测试时可以正常工作。 但是,当我在我的角度项目中使用此API时,会发生错误并且浏览器没有得到任何响应,因此会一直等待响应。当我进入控制台时,看到错误消息。
如何使该错误消息与完整的堆栈跟踪一起发送回浏览器
答案 0 :(得分:2)
通常,您需要捕获该错误,然后使用它填充http响应对象,就像将成功的响应数据发送回请求者一样。
同步处理:
try {
// do my requested stuff
res.status(200).json({something:"returned"});
} catch(ex) {
res.status(500).json(ex);
};
承诺:
Promise.resolve()
.then(() => {
// do my requested stuff
// return my results stuff to the client
res.status(200).json({something:"returned"});
})
.catch((ex) => {
// return 500 error and exception data to the client
res.status(500).json(ex);
});
此外,作为常规做法,您应该捕获所有错误,并且至少应将500返回到浏览器res.status(500)
,以免在出现意外问题时不要挂起它。
当然,您可以返回html而不是json,和/或在响应中提供更多信息。
祝你好运。