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 相关文章推荐
javascript 手动给表增加数据的小例子
Jul 10 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
js实现网页随机切换背景图片的方法
Nov 01 Javascript
使用JavaScript获取Request中参数的值方法
Sep 27 Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
微信小程序wx:for和wx:for-item的用法详解
Apr 01 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 Javascript
vue mounted 调用两次的完美解决办法
Oct 29 Javascript
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 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 归并排序 数组交集
2011/05/10 PHP
基于PHP文件操作的详解
2013/06/05 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
Python文件去除注释的方法
2015/05/25 Python
Sanic框架配置操作分析
2018/07/17 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python re的findall和finditer的区别详解
2020/11/15 Python
设计模式的基本要素是什么
2014/04/21 面试题
高校毕业生自我鉴定
2013/10/27 职场文书
物业公司采购员岗位职责
2013/12/31 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
团代会闭幕词
2015/01/28 职场文书
2015年环卫工作总结
2015/04/28 职场文书
vue使用element-ui按需引入
2022/05/20 Vue.js