如何正确使用节点检查器调试node.js?

我有一个在node.js中构建的应用程序,我使用节点检查器进行调试。 但这很难,因为:

  • 重新启动服务器后,我的断点永远不会保存
  • 我不能在尚未加载的文件上放置断点; 所以我必须从第一个脚本进入我想要的脚本; 真的很疼!
  • 你如何真正使用节点检查器调试node.js?

    关于如何使用node.js的视频很容易让人误解,因为一切都在模块中......
    http://www.youtube.com/watch?v=AOnK3NVnxL8

    或者这个脚本出现的脚本已经加载到第一个脚本中
    http://www.youtube.com/watch?v=HJOH0-g8f6E&feature=mfu_in_order&list=UL

    编辑:

    没人能回答这个问题吗? :■


    在JavaScript中,您可以使用debugger;设置断点debugger; 声明。 但是,如果实际连接了调试器,它们只会暂停节点。

    所以使用启动你的节点脚本

    node --debug-brk myfile.js
    

    然后启动节点检查器并按下播放按钮以继续下一个断点,它会触发您的debugger; 断点(至少适用于我的ATM)

    (正如在评论中指出的那样:在最近版本的节点中,您不再需要单独安装节点检查器。如果使用node --debug-brk --inspect myfile.js启动节点,则会获得一个URL,用于启动您的调试器浏览器)。

    重新启动后仍需要额外点击一次,但至少可以保存您的断点。

    如果你的断点没有被自动命中,但是只有在某些用户操作之后,你才不需要--debug-brk


    客户端断点的问题在于,在文件更改时很难跟踪断点位置。 与编辑器不同的是,它不能跟踪被更改的行等。

    @RyanOlds使用调试器的建议; 语句也很好,但在评估语句之前必须确保调试器已连接,否则将被忽略。 从--debug-brk开始是一种强制执行的好方法,因为第一行的执行暂停,允许您附加调试器,然后继续执行。

    您可以尝试使用节点的内部调试器进行调试。

    编辑:但是,根据v8 DebuggerProtocol,可以在尚未加载的脚本上设置断点,并且可以通过函数,脚本等设置断点。 因此,节点检查员应该能够跟踪你的断点(在一个会话中,或其他)。 但是,现在它并没有这样做。

    也许如果v8允许某段代码触发一个断点,类似于节点调试器? 编辑:它的确如此,你应该能够通过抛出任何旧的异常(被捕获或未被捕获)来触发中断。


    节点检查器的新版本(0.3.x)在浏览器本地存储器中保存断点并自动恢复它们。

    https://github.com/node-inspector/node-inspector/pull/116

    链接地址: http://www.djcxy.com/p/52645.html

    上一篇: How to PROPERLY debug node.js with node inspector?

    下一篇: how can I use console.log to debug a test?