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 parent和parents的区别分析
Oct 02 Javascript
js中判断用户输入的值是否为空的简单实例
Dec 23 Javascript
javascript实现链接单选效果的方法
May 13 Javascript
JavaScript设计模式之单体模式全面解析
Sep 09 Javascript
JS基于面向对象实现的拖拽功能示例
Dec 20 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
深入理解Promise.all
Aug 08 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
Aug 31 Javascript
VUE项目中加载已保存的笔记实例方法
Sep 14 Javascript
Vue初始化中的选项合并之initInternalComponent详解
Jun 11 Javascript
JavaScript架构localStorage特殊场景下二次封装操作
Jun 21 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 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
php实现等比例压缩图片
2018/07/26 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
python多重继承实例
2014/10/11 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python目录和文件处理总结详解
2019/09/02 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
python代码中怎么换行
2020/06/17 Python
浅析Python中字符串的intern机制
2020/10/03 Python
python实现按日期归档文件
2021/01/30 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
2015年社区国庆节活动总结
2015/07/30 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书