【问题标题】:Using Node Inspector with Derby App?将节点检查器与 Derby 应用程序一起使用?
【发布时间】:2015-01-30 09:59:47
【问题描述】:

我想使用 node-inspector 来调试一个用 Derbyjs 编写的应用程序,但没有取得太大的成功。我认为问题在于 derby 在子进程中运行。我的代码加载如下:

derby.run(function () {
...
});

当我使用 node-inspector 启动应用程序时,我看不到我写入日志的正常启动输出。而且,当我转到 node-inspector 输出的 url 时,

http://127.0.0.1:8080/debug?port=5858

什么都没有发生。我以前使用过节点检查器,并且从来没有真正需要做很多事情来让它工作。不知道该怎么做才能让它工作。

【问题讨论】:

    标签: node.js node-inspector derbyjs


    【解决方案1】:

    是的,你是对的。

    问题在于 derby 分叉了进程,并且没有为它们分配不同的调试端口。所以理论上你只能调试第一个德比“app”。

    我提出了一个拉取请求来解决这个问题,但它还没有被合并。

    请访问https://github.com/derbyjs/derby/pull/472 并将其合并到您的本地项目中。 之后,您将能够使用节点检查器进行调试。

    分配主进程

    http://localhost:8080/debug?port=5858
    

    应用 1

    http://localhost:8080/debug?port=5859
    

    ...


    然后在节点中使用 --debug 标志

    node --debug server.js
    

    使用节点检查器

    node-inspector --debug-port=5859
    

    【讨论】:

      【解决方案2】:

      如果 NODE_ENV=production,Derby 不会派生进程。所以当然你可以尝试这个解决方法,但如果你想使用节点检查器,我建议不要在你的服务器部分使用 derby.run。

      derby.run 只是一个包装器。你可以像这样扔掉它:

        derby.run(function(){
          // inside code
        });
      
        // to just --->
      
        // inside code
      

      【讨论】:

        猜你喜欢
        • 2012-10-09
        • 2012-06-25
        • 2015-03-03
        • 2012-04-28
        • 2020-11-16
        • 1970-01-01
        • 2016-08-15
        • 2013-12-26
        • 1970-01-01
        相关资源
        最近更新 更多