Node调试工具入门教程

JavaScript程序越来越复杂,调试工具的重要性日益凸显。客户端脚本有浏览器,Node脚本怎么调试呢?

2016年,Node决定将Chrome浏览器的"开发者工具"作为官方的调试工具,使得Node脚本也可以使用图形界面调试,这大大方便了开发者。

本文介绍如何使用Node脚本的调试工具。

为了方便讲解,下面是一个示例脚本。首先,新建一个工作目录,并进入该目录。

$npminit-y$npminstall--savekoakoa-route接着,新建一个脚本app.js,并写入下面的内容。

现在,运行上面的脚本。

接下来,就要开始调试了。一共有两种打开调试工具的方法,第一种是在Chrome浏览器的地址栏,键入chrome://inspect或者about:inspect,回车后就可以看到下面的界面。

在Target部分,点击inspect链接,就能进入调试工具了。

调试工具其实就是"开发者工具"的定制版,省去了那些对服务器脚本没用的部分。

它主要有四个面板。

这些面板的用法,基本上跟浏览器环境差不多,这里只介绍Sources(源码)面板。

进入Sources面板,找到正在运行的脚本app.js。

在第11行(也就是下面这一行)的行号上点一下,就设置了一个断点。

进入Console面板,输入name,会返回alice。这表明我们正处在断点处的上下文(context)。

再切回Sources面板,右侧可以看到Watch、CallStack、Scope、Breakpoints等折叠项。打开Scope折叠项,可以看到Local作用域和Global作用域里面的所有变量。

Local作用域里面,变量name的值是alice,双击进入编辑状态,把它改成bob。

然后,点击顶部工具栏的继续运行按钮。

页面上就可以看到Hellobob了。

命令行下,按下ctrl+c,终止运行app.js。

$node--inspect=9229-e"setTimeout(function(){console.log('yes');},30000)"上面代码中,--inspect=9229指定调试端口为9229,这是调试工具默认的通信端口。-e参数指定一个字符串,作为代码运行。

访问chrome://inspect,就可以进入调试工具,调试这段代码了。

$node--inspect-brk=9229app.js上面代码中,--inspect-brk指定在第一行就设置断点。也就是说,一开始运行,就是暂停的状态。

打开调试工具的前提是,启动Node脚本时就加上--inspect参数。如果忘了这个参数,还能不能调试呢?

回答是可以的。首先,正常启动脚本。

$nodeapp.js然后,在另一个命令行窗口,查找上面脚本的进程号。

$psax|grepapp.js30464pts/11Sl+0:00nodeapp.js30541pts/12S+0:00grepapp.js上面命令中,app.js的进程号是30464。

接着,运行下面的命令。

$node-e'process._debugProcess(30464)'上面命令会建立进程30464与调试工具的连接,然后就可以打开调试工具了。

$kill-SIGUSR130464七、参考链接(完)

FaiChou说:

很不错的node调试入门教程

魅鬼说:

赞啊,才知道原来浏览器还能调试nodejs,牛逼的chrome,多谢阮老师!

James说:

直接用VSCODE的调试功能就行了吧,简单方便。

Simon说:

学到了,多谢阮老师!j

disguiser说:

vscode+postman很方便易用

hooyes说:

就是说加上--inspect参数,Node服务器就把源代码推向了浏览器了?

riskers说:

可以添加一个VSCode调试的说明

Passenger说:

VSCode+1

hoosin说:

阮老师,你怕不知道什么是端口

安娜说:

这,阮老师的东西,好多都是翻译呀

lveyo说:

ThelegacydebuggerhasbeendeprecatedasofNode7.7.0.Pleaseuse--inspectandInspectorinstead.看来得7.7以后才能用这个inspect

阿良良说:

推荐用vscode调试node.js代码

一别经年说:

在开发node的命令行程序时候,怎么去做调试?

cnqn说:

弄了半天,终于搞成功了。感谢

一只前端狗说:

用的什么富文本编辑器啊很美观

厌敷衍说:

xiatian说:

远程调试还是不太方便

雨寒说:

弥左拉说:

小媒体说:

看了这么多关于Node调试的,只有这篇收获最大。

唐竟成说:

没有必要在chrome中打断点,可以在js脚本里写个“debugger”,这样方便点啊。

安全上网说:

可能是我思维懒吧。总感觉Node的东西都特别复杂。

ksat说:

似水说:

vscode的调试怎么用,没用过。不知道咋玩

ycw说:

使用Chorme这种调试方法是不是只能调试Get请求?其他请求可以吗?

请问如果是其他类型的请求(post、delete)怎么调试?

杰哥说:

刚刚学到node搭建服务器,很实用啊

R说:

ndb也可以用啦

义说:

因为本地开发方便的问题,启动服务采用了pm2模块,但是又想用到node模块的inspect调试功能,有没有方法,查了一下资料,好像没看到pm2调试的方法。

敲代码的李二狗说:

非常感谢这种实用的介绍!!!另外vscode中好像不能实现ts文件的调试功能,如果可以实现,请知情人士告知一下~非常感谢

學生说:

感謝阮老師,減少摸索時間能有更多時間對開源社區做貢獻

祖安宁哥说:

fjqingyou说:

在使用node-e'process._debugProcess(30464)'进入了调试模式。在不需要再调试时,有没有办法退出调试状态?即达到关闭调试的端口、不再接受调试请求?

joe说:

找来找去,花个几个小时google,最后还是发现大佬您给了答案,跪谢!

THE END
1.来自Microsoft开发人员工具的示例代码MicrosoftLearn查看Microsoft 开发人员工具和技术的代码示例。 浏览并发现可以使用 .NET、Azure 或 C++ 等产品构建的内容。https://docs.microsoft.com/zh-cn/samples/browse/
2.如何使用开发者工具?开发者工具使用教程在Chrome中使用开发者工具 1. 检查网页上的元素 这可以让我们很容易地选择网页上的任何元素。让我们假设您想要检查页面的一个部分,而您在查找该部分的代码时遇到了困难。你能做的就是按下键盘上的“CTRL + Shift + I”打开开发人员工具,然后点击如下所示的小箭头图标。 https://blog.csdn.net/nhb687095/article/details/142332172
3.excel开发者工具怎么用excel宏的使用教程1.工具栏 工具栏包括了VBE页面的绝大多数实际操作,数据量较为大。大家关键从下列一些层面开展详细介绍: 1)调成对话框:点一下菜单栏-查询,全部对话框都能够表明在里面。 2)编码调节:点一下工具栏-调节,能够见到日常写完以后假如要调节VBA编码的运作,必须使用这儿的初始化作用。创作者的E图表明,一般应用“逐字逐句https://www.dkewl.com/course/detail6582.html
4.微信web开发者工具64位的教程完美锦囊技巧教程资讯微信web开发者工具主要用于辅助开发者简单高效的开发和调试基于微信的网页或小程序,具备开发调试、代码编辑及程序发布等功能,让开发者更好的在PC或者Mac上进行开发和调试工作。微信web开发者工具利用集成的Chrome DevTools和基本的移动调试模块,协助开发者进行开发,而且使用非常方便,是开发者编程的福音! https://tech.wmzhe.com/article/83905.html
5.GoogleChrome浏览器开发者工具使用教程51CTO博客Google Chrome 浏览器 开发者工具 使用教程 对于Chrome 浏览器,除了占用内存的缺点,其他都很不错。对于Chrome 浏览器的开发者工具,Jeff 除了Elements、Resources、Network、Console这四个标签页用得比较多外,其他的都甚少理解。今天偶然看到一篇Chrome 浏览器开发者工具的使用教程,感觉不错,顺便转载在这里,感谢原作者的https://blog.51cto.com/u_16120380/6311710
6.GoogleChrome谷歌/火狐/Safari浏览器开发者工具基本使用教程在阅读下面内容之前,那么些简单的了解浏览器开发者工具到底是什么东西,到底有什么用途。 浏览器开发者工具到底是什么? 其实简单的说,浏览器开发者工具就是给专业的web应用和网站开发人员使用的工具,当然只要你有兴趣想要了解,只要你对这个世界充满这好奇,什么东西你都可以了解。 https://cloud.tencent.com/developer/article/1504862
7.如何使用网站调试工具(如Chrome开发者工具或Firebug)诊断和解决网站错误如何使用网站调试工具(如Chrome开发者工具或Firebug)诊断和解决网站错误和问题的教程和技巧 网站调试工具是开发者在开发和维护网站时的必备利器。它们可以帮助我们诊断和解决各种网站错误和问题,从而确保网站的正常运行和良好的用户体验。本文将介绍如何使用常见的网站调试工具(如Chrome开发者工具和Firebug),并分享一些调试https://wenku.baidu.com/view/3d312850ccc789eb172ded630b1c59eef8c79afd.html
8.apk开发者助手使用教程在Android开发中,APK(Android Package)是指安装包文件,它是Android应用程序的打包文件,包含了应用程序的代码、资源和清单文件。开发者在Android Studio中生成APK安装包,是将应用程序打包成可安装的APK文件,方便用详情 studio生成apk安装包 在Android开发中,APK(Android Package)是指安装包文件,它是Android应用程序的打包http://www.anzhuoe.net/apk-dabao-1244.html
9.开发者测试调试工具Xdebug安装及集成使用教程Xdebug的一个伟大方面是它的灵活性。无论你喜欢哪种框架或开发环境,你都能找到适合你工作流程的Xdebug版本。从这里开始,掌握这个工具不会花很长时间。 本教程将深入研究Xdebug,包括安装过程、将其集成到你的设置中,以及一般使用方法。 首先,让我们给你更多关于Xdebug是什么和它做什么的背景。 https://www.wbolt.com/xdebug.html
10.微信小程序开发者工具下载安装教程及注意事项启动:先启动7版本(桌面上只有一个快捷方式,所以要到安装目录下启动主程序),回车退出,再启动9版本即可使用。 补充教程:破解补丁需要替换两个文件,如有问题请安装开发者工具0.7版本登录后再用0.9版本打开。 开发人员须知 1、微信公众平台开发,是指微信公众号的业务开发、移动应用开发、PC网站开发、公众号第三方平台开发http://www.bjhwtx.com/h-nd-155151.html
11.视频教程目录 开源框架App使用教程 Gokit3入门视频(2016) ECE雾计算入门教程 Gokit 开发视频(2015) 2016年机智云开发者大会主题分享 1 机智云4.0 2 机智云4.0产品介绍 3 机智云4.0人工智能 4 快速玩转APP开发 5 一步智能,无须代码开发的智能化解决方案 6 智能热潮来袭,净水行业的互联网时代 7 通过PaaS平台进行物联垂直http://docs.gizwits.com/zh-cn/UserManual/hide/videos.html
12.浏览器F12开发者工具控制台如何设置英文界面更改中文界面图文教程有的浏览器安装完后F12开发者工具控制台是英文版的如下图,显示的是英文界面,对于英语不好的小白来说很多功能都不太明白和使用,百度查找相关参考文章更改成中文界面后简单写个教程记录下以免下次要用到的时候忘记怎么设置!同时也给需要同学提供一丢丢帮助吧 https://www.ahaoyw.com/article/822.html
13.数据库设计工具MySQLWorkbench使用教程(超级详细!)MysqlMySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能,下面这篇文章主要给大家介绍了关于MySQL设计工具Workbench使用的相关资料,需要的朋友可以参考下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 https://www.jb51.net/article/275612.htm
14.GitHub上高质量有趣实用的开源技术教程开发者工具编程坚持分享 GitHub 上高质量、有趣实用的开源技术教程、开发者工具、编程网站、技术资讯。A list cool, interesting projects of GitHub. - flywingjie/GitHubDailyhttps://github.com/flywingjie/GitHubDaily