首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何调试Node业务代码及其源码?这些方式你都知道吗?

目前,Node在前端的开发中已经运用的十分广泛了,它主要用于开发Node服务和Node工具,无论哪一种在开发的时候都离不开调试!最原始的调试办法是加console.log,然后在控制台查看打印的信息,这种方式调试很慢而且很难兼顾上下文,所以我们能不能像调试页面一样在浏览器中调试Node业务代码甚至Node源码呢?下面我分享几个常用的便捷方法。

第一种方式

建一个业务代码文件demo.js,运行以下命令:

//9229是调试端口

node --inspect-brk=9229 demo.js

现在我们用chrome打开chrome://inspect这个地址

图1

在图1红色区域中点击inspect,就会弹出一个debug工具,

图2

这个界面和平时我们调试web的devtools几乎一毛一样,现在我们就能按照平时调试web的习惯去调试Node了。

第二种方式

全局安装一个npm模块ndb

npm install ndb -g

然后用ndb命令去运行业务代码文件

ndb demo.js

//或者

ndb node demo.js

之后会弹出一个界面

图3

和第一种方式一样,直接就可以在这个界面debug。

第三种方式

利用vscode调试node代码

如果你没有在用vscode,那就安装一个吧,毕竟是当下最流行的开发工具。

装完之后,加入你的工程代码

图4

首先点击图4中的1号图案(像个乌龟),再点击图2设置按钮,会弹出一个配置文件,如下:

图5

在配置文件中,加入图5中红色区域的配置,保存。

图6

回到自己的业务代码,如图6,加一个断点,

图7

如图7,运行一下红色区域的命令(和第一种方式一样),然后点击debug按钮,这样就可以在编辑器上debug了。

图8

如果编辑器上debug的快捷键和chrome不一致,可以自己改一下,保持一致用着会比较顺手。

调试Node中js源码部分

Node主要是用js和c++开发的,底层是c++,开发了一些能力,上面的js是调用这些能力封装了一些逻辑,我更关注js部分的逻辑,那如何debug Node的源码呢?

首先从github上下载node源码,下载完成后,进入node源码的工程下,创建一个文件build.sh,加入下面的内容:

#!/bin/bash

./configure --debug

make -C out BUILDTYPE=Debug -j 4

以上完成过后,运行一下这个脚本

sh build.sh

第一次运行时间比较长,大家可以出去逛个超市跑个步什么的!

运行完成后,会生成一个out目录,在out/Debug/下会生成一个debug版本的node可执行程序,用此node代替全局命令里面的node,并采用以上三种方式就可以debug进node源码中了!

图9

图10

运行图9中的命令,在业务代码中就可以debug进node源码中,如图10(stream模块源码)。

总结

这篇文章介绍了三种调试方式,其实还有一些其他的方式没说,不过已经够用了!第一种方式最常见,但是我比较喜欢第二种方式,它会自动打开debug工具,非常方便,不过非常占电脑内存!大家有什么更好的调试方法可以在评论区发表建议!

喜欢我的文章就关注我吧,有问题可以发表评论,我们一起学习,共同成长!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191125A04V2200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券