Debugging 节点检查器:运行代码-而不仅仅是单步执行 我想要什么

Debugging 节点检查器:运行代码-而不仅仅是单步执行 我想要什么,debugging,node.js,google-chrome-devtools,web-inspector,node-inspector,Debugging,Node.js,Google Chrome Devtools,Web Inspector,Node Inspector,在使用节点检查器和Web检查器进行调试期间,我希望能够在节点中运行整个脚本我不想单步执行单个JavaScript调用 我所做的 (我的PowerShell说明) 我为什么要那样 我正在写一个节点脚本。在这个脚本中,Iconsole.log记录了许多对象,以便能够在调试过程中探索它们。但是简单的静态文本控制台输出并不是很好-您无法折叠和扩展对象的属性或获取函数的源代码: (例如) 因此,我决定将Web Inspector与节点检查器一起使用,以获得良好的对象浏览体验(因为Web Inspector

在使用
节点检查器
和Web检查器进行调试期间,我希望能够
节点中运行整个脚本我不想单步执行单个JavaScript调用

我所做的 (我的PowerShell说明)

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

(例如)

因此,我决定将Web Inspector与
节点检查器一起使用,以获得良好的对象浏览体验(因为Web Inspector具有良好的输出格式)

为什么我不走过去 (我的脚本结构)

  • console.log()
    调用在的回调函数中执行
    require('fs').readFile()
    。我不会只凭“正常”就能到达那里 步骤
  • 它只是一次又一次的点击步骤按钮
  • 我的问题
    • 是否有可能在不使用以下Web Inspector用户界面的情况下运行脚本(我不想使用
      node-debug myscript.js
      而不是
      node-debug brk myscript.js
      ,因为随后检查器抛出
      错误:connect-ECONNREFUSED
      节点是否使用--debug端口5858运行?
      因为脚本运行太快)
    (Web检查器界面)

    • 或者至少有任何其他方法来实现我在上面描述的内容(在“我为什么想要”一节中)
    谢谢-
    (我希望我想问的问题很清楚。-如果不清楚,请写一篇评论。)

    你有几个选择

    使用
    --调试brk

  • 启动脚本,让它在第一行停止

    在脚本窗格中,单击回调内的行号(第行) 4在这个 示例)

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

  • 使用
    --调试

  • 将行
    调试器;
    添加到回调。这将停止 调试器。完成后单击“|>”

  • 我也想在Chrome Inspector中浏览对象。谢谢你的回答。-在玩了
    npm
    之后,我让
    节点检查器在单击“继续”时正常工作。-我不知道为什么,但节点没有停止在
    调试器上执行;
    。我在web inspect中遇到了某些执行上下文或者在文件执行之前没有及时加载源文件以设置断点。我通常采取安全路线并在命令行上设置--debug brk,然后在我知道正在加载新文件的点之间进行操作。不过,听起来你走的方向是对的。继续玩吧!
    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
    
    { [Function: Xy]
      a: [Function],
      b: 8.2,
      c: [Function],
      d: [Circular],
      e: '2011-11-11' }
    
    var fs = require('fs');
    
    fs.readFile('myfile', function (err, data) {
        if (err) {
            throw err;
        }
    
        //My Script...
    
        console.log(something);
    });