1. nodejs内部提供一个debug机制,可以让程序进入debug模式,供开发者一步一步分析代码发现问题。
  2. 共有3中启动参数可以让程序进入debug模式,假设我们要对app.js进行调试。
  3. node debug app.js
  4. node --debug app.js
  5. node --debug-brk app.js
  6.  
  7. 3种模式在调试形式上有一定区别。
  8.  
  9. node debug app.js
  10. 1.这种方式启动程序,程序会进入debug模式,并运行到启动文件的第1行就停止,等待开发者下发往下走的命令。
  11. 2.这种方式启动程序,直接在当前cmd中进入调试模式。
  12.  
  13. node --debug app.js
  14. 1.这种方式启动程序,程序会进入debug模式,并运行完所有代码。这种启动方式往往用于程序启动的过程中不需要调试,通过触发时间进入回调函数的情况,比如在某个http请求中打上断点,等待客户端访问后进入断点。
  15. 2.这种方式启动程序,会开启一个TCP的端口监听,在本cmd中不进入调试模式,需要另外开启终端用node debug 命令连接调试端口。命令为 node debug localhost debug端口或者 node debug p node进程id
  16.  
  17. node --debug-brk app.js
  18. 1.这种方式启动程序,程序会进入debug模式,但是不会运行代码,直到有一个终端连接到了debug端口,才开始执行代码,并在第1行进入断点。
  19. 2.这种方式启动程序,会开启一个TCP的端口监听,在本cmd中不进入调试模式,需要另外开启终端用node debug 命令连接调试端口。
  20.  
  21. 进入debug模式后,可以通过一些命令来设置断点、取消断点以及控制程序执行流程。Nodejs支持js原生的调试,可通过debugger来下断点。通过console.log(var)来显示变量的值。也可以在debug下输入repl再来查看变量的值。
  22. node.js调试命令

  

  1. 命令 功能
  2. run 执行脚本,在第一行暂停
  3. restart 重新执行脚本
  4. cont,c 继续执行,直到遇到下一个断点
  5. next, n 单步执行
  6. step, s 单步执行并进入函数
  7. out, o 从函数中步出
  8. setBreakpoint(), sb() 当前行设置断点
  9. setBreakpoint(‘f()’), sb(…) 在函数f的第一行设置断点
  10. setBreakpoint(‘script.js’, ), sb(…) script.js 的第20行设置断点
  11. clearBreakpoint, cb(…) 清除所有断点
  12. cbacktrace, bt 显示当前的调用栈
  13. list() 显示当前执行到的前后10行代码
  14. watch(expr) 把表达式 expr 加入监视列表
  15. unwatch(expr) 把表达式 expr 从监视列表移除
  16. watchers 显示监视列表中所有的表达式和值
  17. repl 在当前上下文打开即时求值环境
  18. kill 终止当前执行的脚本
  19. scripts 显示当前已加载的所有脚本
  20. version 显示v8版本

nodejs中有supervisor这个热部署组件,supervisor插件帮我们监视文件改动,自动重启服务器,supervisor是node.js的一个包,安装起来很简单,使用npm的安装命令就可以,因为我们需要在控制台运行,所以需要安装在全局环境中。

  1. npm install -g supervisor

源文地址:https://blog.csdn.net/rznice/article/details/52710801?locationNum=14

Nodejs 调试方法的更多相关文章

  1. 开始学nodejs —— 调试篇

    新学习一种技术,肯定会遇到很多坑,我们需要找到这些坑,弄清楚这些坑出现的原因和其中的原理.这种操作就叫做调试. 程序调试的方法和工具多种多样,在这里我总结一下我在学习nodejs的过程中,学到的和用到 ...

  2. Perl的调试方法

    来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/ ...

  3. nodejs调试总结

    之前nodejs开发中最痛苦的就是调试,因为我之前开发node时使用的编辑器还没有将nodejs的调试也集成进去,所以简单对nodejs开发的调试做了点探索,nodejs本身就有调试功能,同时node ...

  4. 欲善其功,必先利其器--Nodejs调试技术总结

    调试技术与开发技术构成了软件开发的基石.目前Nodejs作为新型的Web Server开发栈倍受开发者关注.总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语言编译的 ...

  5. node js 调试方法

    1. node-debug tutorial 大家对nodejs调试应该都比较头疼,至少我这个不用IDE写js的人很头疼这个,其实node的生态圈非常好 有非常好的工具和非常潮的开发方式 这里总结了3 ...

  6. Nodejs调试技术总结

    调试技术与开发技术构成了软件开发的基石.目前Nodejs作为新型的Web Server开发栈倍受开发者关注.总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语言编译的 ...

  7. React 环境搭建及页面调试方法

    React 环境搭建及页面调试方法 |作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有 ...

  8. Linux环境下段错误的产生原因及调试方法小结(转)

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...

  9. linux Ubuntu(Segmentation fault)段错误出现原因及调试方法

      在linux下编译了一个程序,尝试运行的时候出现: Segmentation fault (core dumped) 初步确认为...完全不知道是什么玩意. 于是找度娘了. ----------- ...

随机推荐

  1. RTT设备与驱动之I2C:

    I2C主从结构(可以有多个主机,但同一时间只能有一个):I2C有两种地址结构7位/10位 总线空闲时,SDA 和 SCL 都处于高电平状态. 开始信号: SCL 为高电平时,主机将 SDA 拉低 结束 ...

  2. linux信号的处理--部分源码分析

    基于linux master v4.9版本 信号是异步的, 一.信号何时来 信号是异步的,对于一个进程随时都会接收到信号. 二.选择线程(task)来处理 那么一个进程接收到信号时,需要选择一个tas ...

  3. (转)Python中的split()函数的用法

    Python中的split()函数的用法 原文:https://www.cnblogs.com/hjhsysu/p/5700347.html Python中有split()和os.path.split ...

  4. machine learning 线性回归实战

    matlab 线性回归实战 统一 输入时列向量 输出也是列向量 中间的过程可以出现行向量或者列向量,但是不能影响输入和输出为列向量 参数运算的输入都不会只是一个实数,要么是列向量,要么是一个矩阵 对于 ...

  5. Win2D 官方文章系列翻译 - 与 Direct2D 互操作

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-interop-with-direct2d/ Win2D 作为 Direct2D 的上层实现,支持与其进行双向 ...

  6. WebService的搭建,部署,简单应用和实体类结合使用

    WebService:一种跨编程语言和操作系统平台的远程调用技术,SOAP.WSDL(WebServicesDescriptionLanguage).UDDI(UniversalDescription ...

  7. java环境下wsimport编译Wsdl

    使用命令提示符进行操作:首先CD至java jdk/bin目录下.先bin目录下执行以下命令即可: -----------------------------服务需求放置的位置------------ ...

  8. C#中关于静态与非静态的一个疑问

    关于静态方法.变量和非静态方法.变量的区别,园里的大神早就有了许多详细的总结,个人觉得静态方法.变量与非静态方法.变量的区别可以总结为以下两句话: 静态的是属于类的 非静态是属于对象的 就是说调用静态 ...

  9. BZOJ4245: [ONTAK2015]OR-XOR(前缀和)

    题意 题目链接 Sol 又是一道非常interesting的题目 很显然要按位考虑 因为最终答案是xor之后or,所以分开之后之后这样位上1的数量是一定是偶数,否则直接加到答案里面 同时,这里面有些部 ...

  10. 实现AB值对换的两种方法

    package com.smbea.demo.exchange; /** * AB对换 * @author hapday * @2017年1月22日 @上午12:36:24 */ public cla ...