节点检查器:运行代码 - 不仅仅是单步执行

时间:2012-09-16 10:12:14

标签: debugging node.js google-chrome-devtools web-inspector node-inspector

我想要什么

我希望能够在使用node和Web Inspector进行调试期间在node-inspector运行整个脚本。 - 我想要逐步各个JavaScript调用。

我做了什么

(我的PowerShell说明)

PS C:\Users\JK> node-inspector
   info  - socket.io started
visit http://0.0.0.0:8080/debug?port=5858 to start debugging
...

==[In another PowerShell instance:]==

PS %> node —debug-brk myscript.js
debugger listening on port 5858

为什么我想要那个

我正在编写节点脚本。在这个脚本中,我console.log了很多对象,以便在调试过程中能够探索它们。但简单的静态文本控制台输出并不是很好 - 您不能折叠和扩展对象的属性或获取函数的源代码:

(例如)

{ [Function: Xy]
  a: [Function],
  b: 8.2,
  c: [Function],
  d: [Circular],
  e: '2011-11-11' }

所以我决定使用带有node-inspector的Web Inspector来获得良好的对象浏览体验(因为Web Inspector的输出格式很好)。

为什么我不介入

(我的脚本结构)

var fs = require('fs');

fs.readFile('myfile', function (err, data) {
    if (err) {
        throw err;
    }

    //My Script...

    console.log(something);
});
  1. console.log()调用在回调函数中执行 require('fs').readFile()。我不会只是“正常”到达那里 步骤。
  2. 一次又一次地点击 Step 按钮很无聊。
  3. 我的问题

    • 是否有可能在不使用以下Web Inspector用户界面的情况下运行脚本? (我不想使用node —debug myscript.js代替node —debug-brk myscript.js,因为Inspector会因为脚本运行得太快而抛出Error: connect ECONNREFUSED Is node running with --debug port 5858?

    (Web Inspector Interface) Web Inspector Interface

    • 或至少以任何其他方式执行上述操作(在为什么我需要部分)。

    感谢。 - (我希望很清楚我想问的是什么。 - 如果不是,请写评论。)

1 个答案:

答案 0 :(得分:3)

你有两个选择。

使用--debug-brk

  1. 启动脚本,让它停在第一行。

    在“脚本”窗格中,单击回调内的行号(行 4在此     例子)。

    点击“继续”(右侧面板上方的“|>”图标)。

  2. 使用--debug

    1. 将行debugger;添加到回调中。这将停止 那时调试器。点击“|>”当你完成了。