如何在流星上远程调试服务器代码?

时间:2019-02-18 16:12:06

标签: node.js debugging meteor node-inspector

当我使用以下命令启动服务器时:

 ROOT_URL="http://myserver:24000" meteor debug --settings config/settings.json --port 24000 --inspect

我得到了Cosole日志:

Debugger listening on ws://127.0.0.1:9229/a540a686-0a99-4a2a-ae85-bf06f74bc274
For help see https://nodejs.org/en/docs/inspector

但是当我尝试访问http://myserver:9229/a540a686-0a99-4a2a-ae85-bf06f74bc274时,我无法访问网站。...

我正在使用:

Meteor v1.8.0.2
Node: v8.11.4


注意: 我想进行远程调试,因为我不在运行我的流星应用程序的机器上。

2 个答案:

答案 0 :(得分:1)

要远程调试Meteor应用,您现在只需use the node internal inspector并省略debug命令:

ROOT_URL="http://myserver:24000" meteor --inspect --settings config/settings.json --port 24000

现在可以像往常一样使用24000公共端口运行您的Meteor应用程序。现在控制台应该向您显示以下输出:

=> Started proxy.                             
=> Started MongoDB.                           
W20190218-21:01:14.539(1)? (STDERR) Debugger listening on ws://127.0.0.1:9229/2ee5da2d-c15b-416a-9efc-a19bb1299f35
W20190218-21:01:14.552(1)? (STDERR) For help see https://nodejs.org/en/docs/inspector
=> Started your app.

=> App running at: http://myserver:24000/

为了远程调试服务器端代码,您需要将node inspector client附加到ws://127.0.0.1:9229/2ee5da2d-c15b-416a-9efc-a19bb1299f35上,http://...是基于Websocket的位置,不能通过chrome://inspect使用。

如果您使用的是chrome,则只需输入Remote Target并查看Target (v8.11.4)列表中的流星应用程序node(内部{{1 }}版本的Meteor 1.8.0.2)。点击inspect,控制台现在应该打印

W20190218-21:08:48.039(1)? (STDERR) Debugger listening on ws://127.0.0.1:9229/2ee5da2d-c15b-416a-9efc-a19bb1299f35 W20190218-21:08:48.040(1)? (STDERR) For help see https://nodejs.org/en/docs/inspector W20190218-21:08:49.291(1)? (STDERR) Debugger attached.

现在通过http://myserver:24000/在另一个选项卡或浏览器窗口中打开您的应用,并使用它,直到触发服务器端代码上的debugger断点,并查看检查器选项卡切换到调试模式为止(您可以从客户端调试中已经知道)。

答案 1 :(得分:0)

我发现了问题,我没有将主机添加到--inspect参数中。 现在,通过添加--inspect=0.0.0.0:9229