node.js - Node.js 终端中漂亮的异常消息

标签 node.js error-handling exception-handling packages

Node.js 在终端显示标准异常消息,即:

  • 凌乱
  • 难以理解
  • 指向已编译的 js 文件中的行。
  • 很难说,有问题的错误位于来源 .

  • 是否有一个包,可以使标准输出更好并显示,哪一行在源代码中出现异常。

    我正在寻找即插即用解决方案,这将解决问题。

    谢谢。

    最佳答案

    pointing to lines in compiled js files.



    错误指向实际正在执行的代码行。 Node 不知道你是不是自己写的。

    您似乎正在使用转译器(您在问题中没有提到),这不是我必须推荐的东西,也不是 Node 开发中的常见用例。但是,当您出于某种原因使用转译器时,您需要使用 Source Maps 将错误指向原始源代码而不是转译结果,就像您在前端所做的那样。在 Node 和 Babel 或您使用的任何转译器中搜索 Source Maps 支持。

    不幸的是,您不太可能找到您所要求的确切内容,即即插即用的解决方案,它可以开箱即用,使错误不那么困惑,更容易理解。错误通常是具有大量上下文的复杂事物,Node 在提供该上下文方面已经做得很好。但是您始终可以编写自己的处理程序来打印更好的错误消息,并在 Error 对象中提供上下文 - 请参阅:
  • https://nodejs.org/api/errors.html
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error

  • 在实践中,您永远不应该依赖 Node 直接打印 Error 对象。您应该编写自己的有意义且易于理解的错误消息,最好使用 Winstonm、Bunyan、Log4js 等模块来处理和记录错误消息。

    关于node.js - Node.js 终端中漂亮的异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45431460/

    相关文章:

    reactjs - 我正在尝试通过 yarn 运行 react 项目,但它给了我错误我现在该怎么办?

    python - 向 sys.excepthook 添加函数

    c# - 在同一个 catch block 中捕获两个异常?

    mysql - 更改 Knex rawquery 的输出

    django - Django中的错误响应

    javascript - TypeError : expect(. ..).toBeA 不是函数

    matlab - 不断收到无效的表达错误

    .net - 为什么 try/catch 没有捕获访问冲突?

    node.js - CouchDB 部分/差异写入

    javascript - Busboy 和 GridFS 不会将文件保存到文件系统