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中的Document文档对象
Jan 16 Javascript
豆瓣网的jquery代码实例
Jun 15 Javascript
javascript 模拟点击广告
Jan 02 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
input:checkbox多选框实现单选效果跟radio一样
Jun 16 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
详解react关于事件绑定this的四种方式
Mar 09 Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 Javascript
微信小程序实现简单表格
Feb 14 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 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开发入门教程之面向对象
2006/12/05 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
php微信公众号开发之简答题
2018/10/20 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
javascript实现计算器功能
2020/03/30 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
利用Python爬取可用的代理IP
2016/08/18 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
PyQt5实现下载进度条效果
2018/04/19 Python
python创建n行m列数组示例
2019/12/02 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
社区志愿者心得体会
2014/01/03 职场文书
中学生打架检讨书
2014/02/10 职场文书
国际会计专业求职信
2014/08/04 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书