【问题标题】:NodeJS - a step-by-step debugger for NodeJSNodeJS - NodeJS 的分步调试器
【发布时间】:2012-09-28 14:10:52
【问题描述】:

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

【问题讨论】:

  • 你的意思不是internal debugger (node debug yourscript.js)?
  • 不,我觉得像 Visual Studio desugger 一样。它允许逐行跟踪程序并在每一行检查每个变量的状态

标签: debugging node.js stack trace


【解决方案1】:

基本上,Node.js 是建立在 V8 之上的,所以它的调试能力也是建立在 V8 的调试能力之上的。

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

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

一种选择是使用node-inspector,它基本上在您的浏览器中提供了一个调试用户界面。不幸的是,它只适用于 Google Chrome 和 Apple Safari(对我来说没问题,但可能还有其他 ;-))。

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

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

当然,还有更多选择......这三个只是我想到的前三个;-)

【讨论】:

  • 旧答案,但正是我需要的 - chrome + node = 调试天堂
【解决方案2】:

这个怎么样?

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          尽管问题很老了,但微软“Visual Studio Code”有一个很棒的IDE,它是用Javascript(Typescript)开发的,能够调试Node JS项目

          查看此链接https://code.visualstudio.com/docs/nodejs/nodejs-debugging

          【讨论】:

            【解决方案7】:

            node inspect内置CLI单步调试

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

            node inspect main.js
            

            这会让你在程序的第一行。

            导航:

            • n 跳到下一行
            • s 步入函数
            • c继续
            • o 出去
            • h 寻求帮助

            为了查看变量或注入代码,你需要先进入REPL模式:

            repl
            

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

            myvar
            

            不得不一直输入这四个字符repl 很尴尬,但我不知道有什么替代方法。

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

            const i = 1;
            debugger;
            i = 2;
            

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

            在 Node.js v10.15.1、Ubuntu 19.10 中测试。

            【讨论】:

              猜你喜欢
              • 2017-05-15
              • 2018-06-14
              • 2016-01-04
              • 2016-04-09
              • 1970-01-01
              • 2017-12-08
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多