另一种选择是安装 ndb,它是 Node.js 的独立调试器,和浏览器中的 DevTools 类似,就像一个隔离的本地调试器一样。它还有一些在 DevTools 中不可用的额外功能。它支持本地编辑,这意味着你可以修改代码并得到调试器平台直接支持的更新逻辑。这对于进行快速迭代非常有用。w
事后调试
假设你的程序由于灾难性错误(例如内存访问错误)而崩溃。这些可能很少见,但确实会发生,特别是如果你的应用程序依赖于本机代码。
要调查这类问题,可以使用 llnode。当程序崩溃时,llnode
可以通过将 JavaScript 堆栈框架和对象映射到 C/C++ 端的对象来检查它们。为了使用它,你首先需要程序的核心转储。为此你需要使用 process.abort
而不是process.exit
来关闭代码中的进程。当你使用 process.abort
时,Node 进程在退出时会生成一个核心转储文件。
为了更好地理解 llnode
可以提供的功能,这个视频演示了其一些功能。
有用的 Node 模块
除了上述所有以外,还建议用第三方软件包做进一步调试。
debug
第一个被简单地称为 debug。使用 debug,你可以基于函数名或整个模块为日志消息分配特定的命名空间。然后可以通过特定的环境变量选择将哪些消息打印到控制台。
例如,这是一个 Node.js 服务器,它正在记录来自整个程序和中间件栈的几条消息,例如 sequelize
,express:application
和 express:router
:
如果我们将 DEBUG 环境变量设置为 express:router
并启动相同的程序,则仅显示标记为 express:router
的消息:
通过以这种方式过滤消息,可以深入研究程序单个部分的行为方式,而无需大幅度更改代码的日志记录。
trace 与 clarify
trace 和 clarify 两个模块最好在一起配合使用。
trace
通过提供有关被调用的异步方法的更多详细信息来扩展你的异步栈跟踪,这是 Node.js 默认不提供的路线图。 clarify
通过从特定于 Node.js 内部的栈跟踪中删除所有信息来提供帮助。这使你可以专注于仅针对程序的函数调用。
这些模块都不建议在生产环境中运行!仅在本地开发环境中进行调试时才应启用它们。
更多编程相关知识,可访问:编程教学!!
以上就是一些调试 Node.js 程序的快捷方法的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
node.js 15正式版发布,将替代node.js 14成为当前的的稳定发行版
mac和windows下如何使用nvm安装和管理多个版本的node.js?
更多相关阅读请进入《node.js》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者