node.js - 在nodejs中将错误消息发送回浏览器

标签 node.js exception

我有一个 Node API,在使用 postman 测试时工作正常。 但是当我在我的 Angular 项目中使用这个 API 时,会发生错误,并且浏览器没有得到任何响应,它会继续等待响应。当我进入控制台时,我看到错误消息。

如何将该错误消息发送回浏览器并提供完整的堆栈跟踪

最佳答案

一般来说,您需要捕获该错误,然后用它填充 http 响应对象,就像您将成功的响应数据发送回请求者一样。

同步处理:

try {
   // do my requested stuff
   res.status(200).json({something:"returned"}); 
} catch(ex) {
   res.status(500).json(ex); 
};

promise :

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 和/或更多信息。

祝你好运。

关于node.js - 在nodejs中将错误消息发送回浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52598118/

相关文章:

node.js - 使用我的 Node 应用程序设置 StrongLoop

c# - 在 .Net/C# 中抛出多个异常

java - 抛出自定义异常的消息被打印为 Null

java - 为什么 `exception` 在任何地方都看不到?

java - 为什么要编译?

javascript - store如何查询Mysql

java - NodeJS 服务器到 Tomcat 服务器的 CORS 问题

node.js - 您如何为用于 GRPC 的 protobuf 文件生成类型?

node.js - 授予服务器创建文件夹的权限

Python 处理特定的错误代码?