在开发的过程当中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个广泛的需求。前端
做为前端开发工程师,以往咱们开发的JavaScript程序都运行在浏览器端,利用Chrome提供的开发者工具就能够方便的进行源码断点调试。其步骤有四,详情不表,粗略归纳以下:express
可是,当咱们用JavaScript开发运行在服务端的Node.js程序时,Chrome开发者工具暂时派不上用场了。虽然也有办法实如今Chrome上调试,不过这不是今天咱们讨论的范围。npm
还有,说用console.log的那位同窗,请你先不要说话…json
实际上,许多IDE都集成了Debug的功能,包括较新版本的WebStorm就对Node.js调试支持得很好。浏览器
可是不少开发人员会以为IDE过重,有没有更轻量级一些的工具来实现断点调试呢?今天就要给你们安利一下在VScode上进行断点调试的方法。服务器
VScode除了out-of-box支持JavaScript和TypeScript,还支持Node.js调试,简直就是为前端工程师而生的,对不对…前端工程师
要调试Node.js的前提是,你的电脑上已经安装了Node.js的环境。app
什么?怎么安装Node.js?给你一点小提示:打开百度,搜索【安装Node.js】,好了,不能提示更多了。编辑器
本文以调试express应用为例,并假设您已经安装好了Node.js运行环境。函数
建立express应用
咱们使用express-generator建立一个新的express应用。
1.在全局安装express-generator
a.打开终端,输入: npm install express-generator -g
MacBook用户全局安装的时候记得在前面加上sudo
b.安装完成以后,在终端输入 express -v
若是看到下图所示的信息,说明已经安装成功了。
2.生成express应用目录,假设这个应用的名称为myapp 在终端输入 express myapp
在当前目录就生成了一个myapp目录,目录结构以下:
能够看到,这个小应用已经五脏俱全,有Node服务器配置,公共资源文件夹,师徒文件夹,以及路由配置。
3.运行express应用
a.在终端中输入指令
`cd myapp && npm install`
就能够进入项目目录并安装全部依赖,这一步可能须要比较长的时间,耐心等待安装完成。
b.而后输入指令
`npm start`
就能够启动应用。
这时咱们在浏览器中访问localhost:3000,便可看到以下页面:
这就说明express应用能够正常运行,接下来咱们就可使用VScode调试代码了。
提示:为了不调试时的端口冲突,咱们先回到刚刚运行express应用的终端,ctrl+c关闭正在运行的express应用。
调试express应用
1.进入VScode界面,点击界面左边的第四个相似虫子的按钮,进入调试界面:
2.点击页面上方“没有配置”下拉菜单,选择“添加配置”。
3.选择Node.js环境。
4.选择完成以后,在项目的根目录中会生成一个.vscode的目录,这个目录中存放了各类各样的VScode编辑器的配置。如今这个目录中就包含了一个文件名为lanuch.json的配置文件,配置文件的内容以下:
其中最重要的配置项就是“Program”字段,这个字段定义了整个应用的入口,开启调试器的时候会从这个入口启动应用。
咱们发现当前这个字段已经有值了,不要慌,那是由于VScode在初始化这个配置文件的时候,会查看package.json中是否有包含了键名为start的scripts,若是有的话,就会把start配置的内容做为“program”字段的值。
5.点击开始调试按钮(绿色三角形),就能够开始调试。这时界面上方就会出现一个调试控制的面板,页面右下方会出现一个调试控制台,能够查看你输出的信息,在界面下放会出现一个状态栏,当前的橘黄色表示应用在正常运行,以下图所示:
6.咱们再次在浏览中访问localhost:3000,会发现页面能够打开,应用已经正常启动了。
7.接下来咱们开始给应用设置断点。咱们打开myapp/routes/index.js文件,这个文件配置了应用根路径的路由,当前的处理是返回一个页面,传入字符串"Express"做为视图的参数。
8.咱们用鼠标在行号6的左边单击左键,就能够设置一个断点。注意,添加断点以前要先关闭调试,关闭的方法是点击界面上方的调试控制面板中的中止按钮(红色正方形)。
9.设置完断点以后,从新启动调试,而后在浏览器中访问localhost:3000,这时候,断点的形状发生了变化,程序停留在了断点,调试控制面板的按钮也发生了变化,从左到右依次是单步跳过,单步调试,单步跳出,重启,中止调试。这几个都是常见的断点调试指令。设置完断点以后,从新启动调试,而后在浏览器中访问localhost:3000,这时候,断点的形状发生了变化,程序停留在了断点,调试控制面板的按钮也发生了变化,从左到右依次是单步跳过,单步调试,单步跳出,重启,中止调试。这几个都是常见的断点调试指令。
10.在界面的左边,能够查看当前上下文环境,也能够设置变量监听。
11.将鼠标防止在断点前的变量或者参数上,也能够查看该变量当前的数值,体验与Chrome开发者工具的调试一致。
Well,开启VScode的Node.js调试之旅吧!! 那个console.log的同窗,你能够说话了…