pomelo远程调试


pomelo虽然可以跨平台运行,但强烈建议在linux下运行,在windows下,一堆坑,像我这种初学者,根本无法填满,在linux下,都没发现有坑要填,一点就能运行。平时我的开发平台是windows,所以就涉及到远程调试,查看了相关文档,都不完整,现在总结下,方便大家使用。


1、远程服务器需要两个端口,一个是node js的调试端口,这里我们取默认端口5858,但这个只能本地调试,需要通过balance建立端口转发,转发端口我们取6000

下载balance源代码,把balance.c文件中 if defined(IPV6_V6ONLY)
...
endif
之间的代码注释掉,重新make,然后make install。然后开启balance,命令为 balance -df 6000 127.0.0.1:5858
具体参考:http://nodejs.netease.com/topic/532910fc1077981a4fa49c60

2、远程服务器上找到pomelo的服务配置文件,在服务配置信息后面添加"args":["--debug=5858","--expose_debug_as=v8debug"],具体参考:http://nodejs.netease.com/topic/515251b97f53b3d3330025c7

3、远程服务器启动pomelo,本地服务器webstorm里建立远程node js 调试,远程IP写远程服务器的IP地址,端口写6000,这样就可以调试了。

4、坑主要是运行操作系统要选linux,然后args的多参数写法

pomelo是采用多服务模式,每个服务一个进程,所以需要对想调试的进程(服务)添加调试参数 --debug=5858,这个5858是你想调试的端口,官方的文档是通过在配置文件里添加 "args":"--debug=5858",但实际远程连接时,会提示v8debug is not definedd的错误,原因是启动时没有添加 --expose_debug_as=v8debug,这个官方网站有个问题,没有写明args如何应对多参数,如果傻傻"args":"--debug=5858 --expose_debug_as=v8debug",会导致调试绑定的地址不对,即控制台显示debugger listening on X.X.X.X:5858,正常应该是debugger listening on 127.0.0.1:5858,这是因为输入参数解析不正确,改成"args":["--debug=5858","--expose_debug_as=v8debug"]。

你可能感兴趣的:(node.js)