将错误消息发送回nodejs中的浏览器

时间:2018-10-01 20:04:25

标签: node.js exception-handling

我有一个节点API,使用邮递员进行测试时可以正常工作。 但是,当我在我的角度项目中使用此API时,会发生错误并且浏览器没有得到任何响应,因此会一直等待响应。当我进入控制台时,看到错误消息。

如何使该错误消息与完整的堆栈跟踪一起发送回浏览器

1 个答案:

答案 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,和/或在响应中提供更多信息。

祝你好运。