我正在寻找逐步调试 NodeJS 服务器代码的有效方法。目前我使用了几十个console.log(),这非常困难。完美的工具可以让我检查堆栈中每个变量的值并逐行跟踪我的程序。首选操作系统 = MacOS/Linux。是否可以?
7 回答
基本上,Node.js 是建立在 V8 之上的,所以它的调试能力也是建立在 V8 的调试能力之上的。
V8 包含一个调试器,可以通过端口 5858 上的 TCP 访问。
所以基本上你只需要一个能够连接到端口 5858 并谈论 V8 调试协议的前端。
一种选择是使用节点检查器,它基本上在浏览器中提供调试 UI。不幸的是,它只适用于 Google Chrome 和 Apple Safari(对我来说没问题,但可能还有其他 ;-))。
另一种选择是使用Eclipse 插件。
而且,最后但同样重要的是,Node.js 的内置调试器(它总是让我想起 MS-DOS 的edlin
)也只是这个 TCP 调试器的前端,只是一个内置的。
当然,还有更多选择......这三个只是我想到的前三个;-)
这个怎么样?
您可以尝试测试 Nodeclipse 版本 0.2.0 beta。
http://www.tomotaro1065.com/nodeclipse/
它将帮助您轻松调试节点应用程序。
生成快速项目
Select the [File]-[New]-[Project] menu. Select [Node]-[Express Project], and push [Next] button. Enter [Project name], and push [Finish] button.
调试
Open the JavaScript source files that you want to set breakpoints. Double-click on the ruler at the left end of the line you want to set a breakpoint. If you want to remove a breakpoint, double-click on the ruler again. Select the main source file of Node Application on the Project Explorer, open the context menu by right-clicking, select the [Debug As]-[Node Application] menu.
用于node-inspector
提供您正在寻找的节点调试环境。这是梦幻般的。
检查WebStorm。它是一个很棒的 IDE,你也可以直接运行你的 nodejs 代码,或者连接到已经运行的启用调试的节点进程。在这两种情况下,WebStorm 都提供了您正在寻找的东西:逐行跟踪程序执行并在每一行检查每个变量的状态。
尝试使用 nodeunit npm 模块来测试 nodejs 服务器端代码。
即使问题很老了,微软“Visual Studio Code”也有一个很棒的IDE,它是用Javascript(Typescript)开发的,它能够调试Node JS项目
查看此链接https://code.visualstudio.com/docs/nodejs/nodejs-debugging
node inspect
内置 CLI 分步调试
花了一些时间,但在某个时候 Node 终于添加了内置调试:
node inspect main.js
这使您处于程序的第一行。
导航:
n
跳到下一行s
进入功能c
继续o
走出去h
得到帮助
为了查看变量或注入代码,您需要首先进入 REPL 模式:
repl
然后您可以像在node
交互式会话中一样运行命令,例如查看变量的值只需写下变量名:
myvar
不得不一直输入这四个字符很尴尬repl
,但我不知道有什么替代方法。
您还可以在 a之后将debugger
语句添加到要在程序中中断的位置c
:
const i = 1;
debugger;
i = 2;
相关问题:如何调试 Node.js 应用程序?
在 Node.js v10.15.1、Ubuntu 19.10 中测试。