node系列:学会node调试

摘要:
单击“Createlaunch.json”文件并选择Node.js。当然,对于Node.js调试,调试启动配置下拉列表(即下面红色框中的标题名称)中显示的名称skipFiles:/**“易于阅读”意味着跳过节点核心模块。通常,我们的节点项目根目录条目文件是app.js。在这种情况下,将生成${workspaceFolder}app.js。

前言

该文章来自于chh大佬的投稿,为他打call

为何需要node调试?

熟练使用node调试能让你在日常开发中更快的定位问题所在的代码,提高开发效率

如何进行node调试?

node调试方式多样,本篇只介绍笔者最熟悉的使用vscode的调试方式

使用vscode运行

vscode左侧共有五个按钮,第四个按钮即为"运行"按钮,假如你的根目录没有.vscode文件夹,点及"创建launch.json"文件后选择Node.js,创建成功后在文件夹目录下新增了一个.vscode文件夹及launch.json文件

node系列:学会node调试第1张

launch.json文件介绍

创建后默认的launch.json文件长这样,当然这是对于Node.js调试而言,如果选择其他的调试方式,会有不用的调试配置字段,接下来简单介绍下这些字段。

{
  // 使用 IntelliSense 了解相关属性。 
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "启动程序",
      "skipFiles": [
        "<node_internals>/**"
      ],
      "program": "${workspaceFolder}\index.js"
    }
  ]
}
  • type:用于此启动配置的调试器的类型

  • request:此启动配置的请求类型。

  • name:在调试启动配置下拉列表中显示的易于阅读的名称(即下图红框中的标题名称)node系列:学会node调试第2张

  • skipFiles:指定跳过单步调试的代码,"<node_internals>/**"表示跳过node核心模块,因为是数组所以很明显可以添加选项:

 "skipFiles": [
    "${workspaceFolder}/node_modules/**/*.js",  //跳过node_modules
    "<node_internals>/**/*.js"//跳过node核心模块
  ]
  • program:指定调试入口文件地址。本例我测试代码只在根目录创建index.js文件,所以会自动生成${workspaceFolder}\index.js。通常我们的node项目根目录入口文件为app.js,这种情况下会生成${workspaceFolder}\app.jsworkspaceFolder表示工作区文件夹的根路径,如果你想调试的入口文件为你当前所打开文件,可新增如下配置(新增的配置项只需在configurations下如同默认配置项一样新增对象配置即可):

"configurations": [
  {
    "type": "node",
    "request": "launch",
    "name": "启动程序",
    "skipFiles": [
      "<node_internals>/**"
    ],
    "program": "${workspaceFolder}\index.js"
  },
  {
    "type": "node",
    "request": "launch",
    "name": "test",
    "skipFiles": [
      "<node_internals>/**"
    ],
    "program": "${file}"
  }
  ...
]

调试入门

首先在需要在文件行数右侧点击打上断点(红色圆),然后点击下图绿色启动按钮即可开始调试,代码自动运行到断点所在行,此时鼠标移入变量可以看到每个变量的当前状态

node系列:学会node调试第3张

nodemon调试

很多时候我们希望每次修改完文件ctrl+s保存后调试可自动重新启动,而不是每次修改都需要点击绿色启动按钮开启调试,这时nodemon调试就派上用场了

什么是nodemon?

nodemon是一种node工具,通过在检测到目录中的文件更改时自动重新启动节点应用程序来帮助开发基于node.js的应用程序。总而言之,我们修改node文件后,不用再每次node+文件名启动node文件,而只需通过nodemon命令启动一次,后面每次保存文件都会自动重启node文件。

nodemon配置

前提条件

  • 安装nodemon包

配置nodemon调试

打开根目录的.vscode文件下的launch.json文件,添加配置选择Node.js:Nodemon安装程序,选择后configurations下自动新增了nodemon配置项

node系列:学会node调试第4张

使用nodemon调试

当你配置完并且ctrl+s保存后,调式启动列表新增了nodemon的启动选项,点击启动即可:

node系列:学会node调试第5张

启动成功后自动跳转到启动文件:

node系列:学会node调试第6张

我们在代码上添加一行console.log,然后ctrl+s保存试试:

node系列:学会node调试第7张

是不是看起来很棒的样子~(=^▽^=)~

在线笔记

最近花了点时间把笔记整理到语雀上了,方便同学们阅读:语雀笔记入口:https://www.yuque.com/wanggangfeng/bsp75t/inu4gw

node系列:学会node调试第8张

最后

1.看到这里了就点个在看支持下吧,你的「点赞,在看」是我创作的动力。

2.关注公众号前端壹栈,回复「1」加入前端交流群!「在这里有好多前端开发者,会讨论前端知识,互相学习」!

3.也可添加公众号【前端壹栈】,一起成长node系列:学会node调试第9张

免责声明:文章转载自《node系列:学会node调试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇07-node.textContent 与innerText比着,不会触发回流expdp/impdp数据泵方式备份还原数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Node版本的升级和降级

在开发的工程中,我们可能需要经常切换node版本来应对不同的开发环境,所以需要经常使用不同版本的node 一、安装npm插件n ,通过n模块来管理node版本1、全局安装n模块npm instlal -g n2、安装当前稳定版本n stable或者sudo n stable3、安装最新版本的n latest或者sudo n latest4、安装指定版本的n...

关于winlogo.exe中了“落雪”病毒的解决方法

Windows Logon Process,Windows NT 用户登陆程序,管理用户登录和退出。该进程的正常路径应是 C:WindowsSystem32 且是以 SYSTEM 用户运行,若不是以上路径且不以 SYSTEM 用户运行,则可能是 W32.Netsky.D@mm蠕虫病毒,该病毒通过 EMail 邮件传播,当你打开病毒发送的附件时,即会被感染。...

shell脚本应用练习(4)

一:正则表达式grep -a   不要忽略二进制数据。 -A  <显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -b   在显示符合范本样式的那一行之外,并显示该行之前的内容。 -c   计算符合范本样式的列数。 -C  <显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列...

小白初学iOS中OTA部署(适应iOS7.1)

OTA(Over the air),可以利用企业级证书($299)直接部署安装APP,苹果允许用itms-services协议在苹果手持设备上的Safari浏览器输入url即可安装应用程序。 这里假设你已经有企业证书,我们利用本地服务器来演示整个部署流程。 1、搭建本地服务器。请参考这里的前六个步骤,完成之后你已经搭建好了本地服务器了。现在来看看我完成后的...

C#调用java类、jar包方法。

一、将已经编译后的java中Class文件进行打包;打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理; 使用的命令:jar cvf test.jar -C com/ . 其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件; 二、到IKVM官方网站下载IKVM需要的组件 ...

Doxygen的输出中文乱码

最近开始尝试使用Doxygen生成程序的文档。程序的源代码采用的是GB2312的格式存储的,而Doxygen输出的文档是UTF-8格式的,出现了乱码。虽然Visual Studio 2003支持以UTF-8格式存储源代码,但是要把所有文件都转换担心太麻烦。于是,在配置文件中增加了一行代码: INPUT_ENCODING = GB2312  这下问题解决了,...