node内置调试方法总结


Posted in Javascript onFebruary 22, 2018

自从node6.3以来,node已经直接支持类似node-inpect的功能,只要对执行的js代码加入一个--inspect参数,即可使用chrome做代码调试。

本文使用如下工具:

  • node v9.5.0
  • chrome 64

首先准备待调试代码。如果这是为了学习的目的,可以使用我测试用代码为:

var objectRegExp = /^\[object (\S+)\]$/;
function gettype(obj) {
 var type = typeof obj;
 if (type !== 'object') {
  return type;
 }
 // inspect [[Class]] for objects
 return toString.call(obj)
  .replace(objectRegExp, '$1');
}
gettype({})
gettype(function(){})

然后运行此代码,加上参数--inspect-brk

node --inspect-brk a.js

系统提示:

Debugger listening on ws://127.0.0.1:9229/84960765-5abc-4236-a7c6-924f99c34ed7

打开浏览器,在地址栏内输入:

chrome://inspect/#devices

可以看到:

Remote Target
#LOCALHOST
Target (v9.5.0)
a.js
file:///Users/lcj/Documents/github/express/a.js
inspect

点击最后一行inspect,即可弹出一个新的窗口,此为调试器。并且调入代码到chrome调试器内,在执行命令的控制台上可以看到:

Debugger attached.

现在,可以使用点击调试器内的Run | Step | Step Into等按钮做调试了。

对于没有直接使用node执行的代码,比如测试用例mocha,怎么办?mocha也是支持这些选项的,比如express使用了mocha做单元测试,可以用如下命名来做调试:

mocha --require test/support/env --reporter spec --bail --check-leaks --no-exit test/app.router.js --inspect-brk -g 'should decode correct params

Javascript 相关文章推荐
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
js canvas仿支付宝芝麻信用分仪表盘
Nov 16 Javascript
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
谈谈对vue响应式数据更新的误解
Aug 01 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
详解ECMAScript typeof用法
Jul 25 Javascript
详解webpack-dev-server使用方法
Sep 14 Javascript
javascript实现点亮灯泡特效示例
Oct 15 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 Javascript
原生js实现自定义滚动条
Jan 20 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
Feb 08 Javascript
详解vue移动端日期选择组件
Feb 22 #Javascript
webpack 单独打包指定JS文件的方法
Feb 22 #Javascript
webpack中使用iconfont字体图标的方法
Feb 22 #Javascript
微信小程序之圆形进度条实现思路
Feb 22 #Javascript
webpack下实现动态引入文件方法
Feb 22 #Javascript
JavaScript 有用的代码片段和 trick
Feb 22 #Javascript
3种vue路由传参的基本模式
Feb 22 #Javascript
You might like
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
详解Python中的元组与逻辑运算符
2015/10/13 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
Python 必须了解的5种高级特征
2020/09/10 Python
python实现磁盘日志清理的示例
2020/11/05 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
总经理司机职责
2014/02/02 职场文书
《掌声》教学反思
2014/02/23 职场文书
导师工作推荐信范文
2014/05/17 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
撤诉书怎么写
2015/05/19 职场文书
超级礼物观后感
2015/06/15 职场文书
同意报考证明
2015/06/17 职场文书
python实现三次密码验证的示例
2021/04/29 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python