NodeJS - NodeJS的逐步调试器

时间:2012-09-28 14:10:53

标签: debugging node.js stack tracing

我正在寻找有效的方法来逐步调试NodeJS服务器代码。此刻我使用了几十个console.log(),这非常困难。完美的工具是允许我检查堆栈中每个变量的值并逐行跟踪我的程序的工具。首选操作系统= MacOS / Linux。有可能吗?

7 个答案:

答案 0 :(得分:10)

基本上,Node.js是在V8之上构建的,因此它的调试功能也建立在V8的调试功能之上。

V8有一个附带的调试器,可以通过端口5858上的TCP访问。

所以基本上你只需要一个能够连接到端口5858并讨论V8调试协议的前端。

一个选项是使用node-inspector,它基本上在浏览器中提供调试UI。不幸的是,它只适用于谷歌浏览器和Apple Safari(对我来说没有问题,但可能有其他人; - ))。

另一种选择是使用a plugin for Eclipse

最后但并非最不重要的是,Node.js的内置调试器(它总是让我想起MS-DOS的edlin)也只是这个TCP调试器的前端,只是一个内置的在一个。

当然,还有更多的选择......这三个只是我脑海中出现的前三个选项; - )

答案 1 :(得分:3)

这个怎么样?

您可以尝试测试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.

答案 2 :(得分:2)

使用node-inspector提供您正在寻找的节点调试环境。太棒了。

答案 3 :(得分:1)

检查WebStorm。它是一个很棒的IDE,您也可以直接运行nodejs代码,或者连接到已经运行的调试启用的节点进程。在这两种情况下,WebStorm都提供了您正在寻找的内容:逐行跟踪程序执行,并在每一行检查每个变量的状态。

答案 4 :(得分:0)

尝试使用nodeunit npm模块测试nodejs服务器端代码。

答案 5 :(得分:0)

即使问题很老,但是有一个来自Microsoft“Visual Studio Code”的精彩IDE,它是用Javascript(Typescript)开发的,它能够调试Node JS项目

结帐此链接https://code.visualstudio.com/docs/nodejs/nodejs-debugging

答案 6 :(得分:0)

node inspect内置的CLI步骤调试

花费了一段时间,但Node终于在某些时候添加了内置调试功能:

node inspect main.js

这将使您进入程序的第一行。

导航:

  • n移至下一行
  • s进入功能
  • c继续
  • o退出
  • h获得帮助

要查看变量或注入代码,您首先需要使用以下命令进入REPL模式:

repl

,然后您可以像在node交互式会话中那样运行命令,例如要查看变量的值,只需输入变量名称:

myvar

必须始终输入这四个字符repl是很尴尬的,但我没有其他选择。

您还可以在debugger之后将c语句添加到要在程序中中断的位置:

const i = 1;
debugger;
i = 2;

相关问题:How do I debug Node.js applications?

在Ubuntu.19.10的Node.js v10.15.1中进行了测试。