【问题标题】:Nice looking exception messages in terminal for Node.jsNode.js 终端中漂亮的异常消息
【发布时间】:2018-01-07 22:40:54
【问题描述】:
Node.js 在终端显示标准异常消息,即:
凌乱
难以理解
指向已编译的 js 文件中的行。
很难判断,有问题的错误在来源中的位置。
是否有一个包,可以使标准输出更好,并显示哪一行在源代码中出现异常。
我正在寻找即插即用的解决方案,该解决方案可以开箱即用。
谢谢。
【问题讨论】:
标签:
node.js
error-handling
exception-handling
packages
【解决方案1】:
指向已编译的 js 文件中的行。
错误指向实际正在执行的代码行。 Node不知道是不是你自己写的。
您似乎正在使用转译器(您在问题中没有提到),这不是我必须推荐的东西,也不是 Node 开发中的常见用例。但是,当您出于某种原因使用转译器时,您需要使用 Source Maps 将错误指向原始源代码而不是转译结果,就像您在前端所做的那样。在 Node 和 Babel 或您使用的任何转译器中搜索 Source Maps 支持。
不幸的是,您不太可能找到您所要求的确切内容,即即插即用的解决方案,该解决方案可以开箱即用,从而减少错误并更容易理解。错误通常是具有大量上下文的复杂事物,Node 在提供该上下文方面已经做得很好。但是您始终可以编写自己的处理程序来打印更好的错误消息,并在错误对象中提供上下文 - 请参阅:
在实践中,您永远不应该依赖 Node 直接打印 Error 对象。您应该编写自己的有意义且易于理解的错误消息,最好使用 Winstonm、Bunyan、Log4js 等模块来处理和记录错误消息。
【解决方案2】:
最受欢迎:verror
它支持的错误类:
- 消息的 printf 样式参数
- 原因链
- 提供有关错误的额外信息的属性
- 创建您自己的支持所有这些的子类
过去一天下载了 518,775 次
上周有 3,387,126 次下载
上个月有 13,950,439 次下载