美文网首页
Node-调试模块Inspector

Node-调试模块Inspector

作者: 杀死BUG | 来源:发表于2020-01-15 20:07 被阅读0次

概要

主要通过实验性模块inspector实现手动开启关闭,修改调试接口以实现远程调试

说明

我们知道通过启动命令可以设置调试开启和关闭

node --inspect=191.168.1.15:9229 app.js

但是通常我们不会专门准备好一个调试接口针对每个进程,但是一旦遇到很难复现的问题就很抓瞎了。好在实现性模块inspector开通了设置调试接口的一些信息。

我们可以通过类似下面脚本实现手动动态配置

const SECRET = '45u90rjigjrihfngihghkbgh+jghg/af';

// 手动开启调试接口-通过http协议开启
function inspector(req, resp, queryInfoDic) {
  if (resp.finished) {
    return;
  }
  // 参数校验权限
  if (!queryInfoDic.params.secret || queryInfoDic.params.secret.replace(/ /g, '+') !== SECRET) {
    resp.end('1');
    return;
  }
  const inspector = require('inspector');
  // 端口,地址,是否只是关闭
  let {port, host, close} = queryInfoDic.params;
  inspector.close();
  // 只关闭
  if (close) { 
    return resp.end(inspector.url());
  }
  // 分配端口
  if (port) {
    port = Number.parseInt(port);
  }
  if (!Number.isSafeInteger(port)) {
    port = 9229;
  }
  let args = [port];
  // 地址
  if (host) { // 一般是目标服务器的本地IP
    args.push(host);
  }
  inspector.open(...args);
  resp.end(inspector.url());
}

只需把此请求挂在http/ws服务器route上即可。

补充

云服务器一般调试的安全性起见我们都会选择host是内网IP,这就遭遇到远程调试不便的问题。

策略1 花钱

申请一台云服务器系统是windows系统,内网互通直接解决一切问题。

策略2 费事

做nginx代理转发对一个外网IP(23.434.355.34)的某个端口8800,做ws转ws到调试服务器内网IP+调试端口。
这样只是会每次都需要运维小弟弟给你临时开放端口。

相关文章

  • Node-调试模块Inspector

    概要 主要通过实验性模块inspector实现手动开启关闭,修改调试接口以实现远程调试 说明 我们知道通过启动命令...

  • node调试

    1. Inspector调试node的优势:Inspector调试node的优势.PNG 2. Inspector...

  • NodeJS的调试

    1. 基于Chrome浏览器的调试 首先,需要安装node-inspector模块 使用$ node-debug ...

  • Nodejs 调试

    Inspector Inspector 是官方的调试工具 chrome 的 inspect 调试工具 然后去 ch...

  • 开发UI调试工具Spark Inspector的使用

    Spark Inspector是比较方便的UI调试工具,初学者极易上手: 安装好Spark Inspector后按...

  • 如何调试node应用?

    过时的调试方法 过去调试node应用,需要借助node-inspector: 安装:npm install -g ...

  • Npm-verbose

    [调试后端 | node]:node-inspector [数据库]:Sequelize [WebStorm插件-...

  • 用chrome inspect调试node.js

    调试相关官方文档:https://nodejs.org/en/docs/inspector/ 命令:node --...

  • No active windows displayed by X

    问题描述 使用Android Layout Inspector 调试布局时,选择相关内容报错 “No active...

  • 使用Appium进行微信公众号自动化测试

    微信中打开调试模式:在微信中打开debugx5.qq.com并勾选信息页面的打开TBS内核Inspector调试功...

网友评论

      本文标题:Node-调试模块Inspector

      本文链接:https://www.haomeiwen.com/subject/maqxzctx.html