1

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

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

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

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

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

4

2 回答 2

0

是的你是对的。

问题是 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
于 2015-03-03T13:03:09.030 回答
0

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

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

  derby.run(function(){
    // inside code
  });

  // to just --->

  // inside code
于 2015-05-07T10:42:24.073 回答