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表格控件(自写,网上没有的)
Jun 04 Javascript
微信WeixinJSBridge API使用实例
May 25 Javascript
javascript每日必学之多态
Feb 23 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
vue分页组件table-pagebar使用实例解析
Nov 15 Javascript
js仿网易表单及时验证功能
Mar 07 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
May 28 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
May 20 Javascript
vue使用swiper实现中间大两边小的轮播图效果
Nov 24 Javascript
JS删除对象中某一属性案例详解
Sep 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
PHP页面中文乱码分析
2013/10/29 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php数组去除空值函数分享
2015/02/02 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
用JS实现的一个include函数
2007/07/21 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python抓取网页内容示例分享
2014/02/24 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
《油菜花开了》教学反思
2014/02/22 职场文书
预备党员表决心书
2014/03/11 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
中班教师个人总结
2015/02/05 职场文书
爱心捐书倡议书
2015/04/27 职场文书
第二次离婚起诉书
2015/05/18 职场文书
紫日观后感
2015/06/05 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
Python实现机器学习算法的分类
2021/06/03 Python
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS