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 相关文章推荐
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Aug 03 Javascript
中国地区三级联动下拉菜单效果分析
Nov 15 Javascript
JavaScript从数组中删除指定值元素的方法
Mar 18 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
JavaScript设计模式经典之命令模式
Feb 24 Javascript
一款简单的jQuery图片标注效果附源码下载
Mar 22 Javascript
js点击返回跳转到指定页面实现过程
Aug 20 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 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内核探索:变量概述
2014/01/30 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP中cookie知识点学习
2018/05/06 PHP
javascript hashtable实现代码
2009/10/13 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
python发腾讯微博代码分享
2014/01/10 Python
python中ConfigParse模块的用法
2014/09/29 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
大学生职业生涯规划书
2014/03/14 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
召开会议通知范文
2015/04/15 职场文书
活动新闻稿范文
2015/07/17 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书