nodejs远程调试

一,eclipse安装nodejs和chromedevtools插件即可调试,插件的安装配置上一篇中已经说明。

(1)要想调试,启动node服务时需要加个参数: 

命令行模式:

     node --debug xxx.js

    node --debug=0000 xxx.js

eclipse模式:


   

这是开启调试端口,不指定,默认端口是5858

 

 

 

 

二、远程调试(非本地调试)

 

我们的NODE工程由于用到了连接mysql用的mysql-libmysqlclient 包,这个包中有c程序,在windows运行比较困难,于是我们的工程只能在linux上运行。(为了便于开发,我们将linux上的node工程目录共享给windows,这样就可以在windows上修改代码,linux上运行了。

共享需要在linux上安装 samba ,这里不介绍了。)

此时的问题是用eclipse远程调试linux上的代码,无法连接:

 

Failed to connect to Standalone V8 VM

Failed to get version



 

解决办法
第一种是远程机编译之前修改nodejs源码,修改deps/v8/src/platform_posix.cc 文件中的Socket::Bind 方法:

 

boolPOSIXSocket::Bind(const int port) {
  if (!IsValid())  {
    return false;
  }
 
  sockaddr_in addr;
  memset(&addr, 0, sizeof(addr));
  addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
  addr.sin_port = htons(port);
  int status = bind(socket_,
                    BitCast<struct sockaddr*>(&addr),
                    sizeof(addr));
  return status == 0;
}

 

 

红色的改成   INADDR_ANY,之后用修改好的nodejs源码在linux上安装。

 

第二种:远程机的127.0.0.1 5858 映射到其他端口,这里也不详述了。

 

第一种没有试验过,第二种使用中,可以成功调试。

 

ps:  在eclipse中启动nodejs(使用了supervisor) 之后,关闭服务不起作用,需要手动结束node进程。

 

 三、自动部署(重启node

安装 supervisor ,g 是安装成全局变量

npm install -g supervisor

不使用 node  xxx.js启动node工程 ,而是:

 

supervisor  xxx.js  

 

 

 

  • 大小: 57 KB
  • 大小: 110.2 KB
  • 大小: 12.9 KB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值