Node内置了V8引擎提供的 inspector 调试器,可以通过 TCP 协议从外部访问这个调试器,方便对Node程序进行调试。启动调试的标志有:

Flag
Meaning
--inspect
  • Enable inspector agent                                             (一直向下运行,直到源码 debugger 处才进入暂停状态)
  • Listen on default address and port (127.0.0.1:9229)   (调试器默认绑定的ip和port,只能本机连接)
--inspect=[host:port]
  • Enable inspector agent
  • Bind to specified address or hostname host (default: 127.0.0.1)
  • Listen on port port (default: 9229)      (绑定到公网ip或0.0.0.0,任何能连接该ip的外部客户端都可以连接到调试器,很危险,需要设置防火墙和其他访问控制。)
--inspect-brk
  • Enable inspector agent
  • Listen on default address and port (127.0.0.1:9229)
  • Break before user code starts                                    (在用户代码开始处暂停)
--inspect-brk=[host:port]
  • Enable inspector agent
  • Bind to address or hostname host (default: 127.0.0.1)
  • Listen on port port (default: 9229)
  • Break before user code starts
node inspect  script.js
  • Spawn child process to run user's script under --inspect flag;
  • and use main process to run CLI debugger.             (当前命令行进程为调试界面,子进程为node应用,在用户代码的首行进入暂停状态)
node inspect --port=xxxx  script.js
  • Spawn child process to run user's script under --inspect flag;
  • and use main process to run CLI debugger.
  • Listen on port port (default: 9229)
具体步骤:
1.使用 --inspect-brk=host:port 标志启动远端服务器内的 inspector 调试器
 
2.在本地访问 http://[host:port]/json/list得到 devtoolsFrontendUrl:
 
3.本地访问devtoolsFrontendUrl得到调试界面:
 

注意:
  1. 通过本地chrome devtool 调试远端服务器代码时,远端服务器有风险,要设置访问控制,如白名单进行限制。
  2. 或者通过 node inspect server.js 在服务器的CLI界面调试。
  3. 或者通过SSH进行端口转发,禁止任意客户端连接服务器的inspector调试器,更安全:
    先--inspect 启动服务器端的调试器,仅限本机可以连接:
 
         本地客户端启动ssh端口转发:
    $ ssh -L 9221:localhost:9229 root@192.168.0.207
        
         本地chrome浏览器获取devtoolsFrontendUrl:
        
          修改devtoolsFrontendUrl的端口后在本地访问,获得调试界面:

本地chrome调试服务器node的更多相关文章

  1. 本地VS调试服务器 IIS 程序

    由于读书的关系,毕业后选择在武汉,工作三年,至今年5月份挪窝到沿海某二线城市,换城市相当于裸辞,一切从头开始,新的城市,新的居住地,新的空气,新工作,新挑战.一直忙忙碌碌,孜孜不倦的汲取着,担心脱队, ...

  2. chrome调试本地项目, 引用本地javascript文件

    chrome调试本地项目, 引用本地javascript文件 本地文件可以访问本地文件 修改快捷方式属性 C:\Users\xxx\AppData\Local\Google\Chrome\Applic ...

  3. Chrome调试本地文件无法使用window.opener对象进行窗口间值传递

    今天在百度BAE上建了个应用,svn上传后发现页面间互调有些问题,几经查询发现: (1)IE下正常的window.opener.object1.object2页面间对象访问方法在Chrome下不能使用 ...

  4. VSCode调试Html中的脚本 vscode前端常用插件推荐,搭建JQuery、Vue等开发环境 vsCode 添加浏览器调试和js调试的方法总结 VS Code - Debugger for Chrome调试js

    一.背景 使用Visual Studio Code写了一个简单的Html页面,想调试下其中script标签里的javascript代码,网上查了一通,基本都是复制粘贴或者大同小异的文章,就是要安装De ...

  5. chrome调试

    今天对chrome调试又进行了系统的学习. Chrome调试工具developer tool技巧 把以前没有使用过的功能列举一遍. 伪类样式调试:伪类样式一般不显示出来,比如像调试元素hover的样式 ...

  6. 微信公众号本地断点调试(frp反向代理或Remote Debugger)

    问题描述: 需要开发微信授权和订阅推送,但是感觉调试不方便,就试着几种方式.因为是用的C#开发,Visual Studio工具自带配套的远程工具 (Remote Debugger).但是感觉不稳定,容 ...

  7. android -chrome 调试

    在chrome上 输入 chrome://inspect/ 连接手机,配置 监听8000,和8080端口 cordova默认是8000端口 如果出现白屏:原因:google在首次加载时,要进行服务器连 ...

  8. 前端开发神一样的工具chrome调试技巧

    前端开发神一样的工具chrome调试技巧 文章来自  Colin-UED // 与您分享前端开发知识 主页 Javascript HTML CSS NodeJs User Experience FE ...

  9. Chrome调试手机页面

    新开发的网页需要在手机或是模拟机上运行测试,如果手头事件比加紧,那么可以借助 Chrome提供的手机网页预览程序进行简单调试.查看 制作的网页是否能够适合各种手机型号使用. 下面所以下如何使用Chro ...

随机推荐

  1. WebRTC开发基础(WebRTC入门系列2:RTCPeerConnection)

    RTCPeerConnection的作用是在浏览器之间建立数据的“点对点”(peer to peer)通信. 使用WebRTC的编解码器和协议做了大量的工作,方便了开发者,使实时通信成为可能,甚至在不 ...

  2. maven搭建ssm初级框架

    喜欢的朋友可以关注下,粉丝也缺. 前言: 想必大家对smm框架已经熟悉的不能再熟悉了,它是由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. ...

  3. 【LeetCode】200. 岛屿的个数

    题目 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. 示例 1:输 ...

  4. div在页面垂直居中方法---增强改进版

    div在页面垂直居中方法---改进版 .wrap{ background: #ffffff; position:absolute; margin:auto; top:; bottom:; left:; ...

  5. 基于GTK+3 开发远程控制管理软件(C语言实现)系列二 Centos7下开发环境搭建

    一.安装gcc gcc-c++ make等编译工具 yum install gcc gcc-c++ kernel-devel 这一步,其实可以不用做,你在安装Centos7的时候,如果选择开发模式安装 ...

  6. 多态、抽象类、接口_DAY09

    1:多态(掌握) (1)多态概念:一种事物的多种形态 (2)体现:父类的引用指向其子类的实例对象;接口的引用指向其实现类的实例对象 (3)特点: 成员方法:编译看左边,运行看右边 运行:子类重写的方法 ...

  7. 08 - JavaSE之IO流

    IO流 JAVA流式输入输出原理:可以想象成一根管道怼到文件上,另一端是我们程序,然后流的输入输出都是按照程序本身作为第一人称说明的.比如 input,对于我们程序来说就是有数据输入我们程序,outp ...

  8. CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2

    前传: 1.CentOS 7.3.1611系统安装配置图解教程 http://www.jb51.net/os/RedHat/597874.html 2.CentOS服务器初始化设置 http://ww ...

  9. 散列算法-MD5

    信息摘要技术把明文内容按某种规则生成一段哈西值,即使明文消息只改动了一点点,生成的结果也会完全不同. MD5(Message-digest algorithm 5)就是信息摘要的一种实现,它可以从任意 ...

  10. Spring Boot项目的内嵌容器

    一.关于容器 刚才开始使用spring boot的开发者会有种很直观的感觉,servlet容器“不见了”.之前开发web项目,都是把程序写完后部署到servlet容器(比如Tomcat),但是使用sp ...