1

我想要的是

我希望能够在使用Web Inspector进行调试期间运行整个脚本。- 我不想单执行各个 JavaScript 调用。nodenode-inspector

我做了什么

(我的 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' }

所以我决定使用 Web Inspectornode-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. 一次又一次地单击“步骤”按钮很无聊。

我的问题

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

(网络检查员界面) 网页检查器界面

  • 或者至少有任何其他方法可以做我上面描述的事情(在我为什么想要那个部分)。

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

4

1 回答 1

3

你有几个选择。

使用--debug-brk

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

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

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

使用--debug

  1. 将该行添加debugger;到您的回调中。这将在此时停止调试器。完成后单击“|>”。
于 2012-10-05T13:32:26.060 回答