10

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

4

7 回答 7

10

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

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

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

一种选择是使用节点检查器,它基本上在浏览器中提供调试 UI。不幸的是,它只适用于 Google Chrome 和 Apple Safari(对我来说没问题,但可能还有其他 ;-))。

另一种选择是使用Eclipse 插件

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

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

于 2012-09-28T14:49:59.390 回答
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.
于 2013-03-08T14:28:37.837 回答
2

用于node-inspector提供您正在寻找的节点调试环境。这是梦幻般的。

于 2012-09-28T14:12:27.470 回答
1

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

于 2012-09-28T14:53:02.333 回答
0

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

于 2013-08-01T10:00:17.820 回答
0

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

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

于 2017-07-14T17:52:21.207 回答
0

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 中测试。

于 2020-02-01T15:26:34.960 回答