Node.js 中的代码调试

目录

1、启用 Inspector

2、安全隐患

3、Inspector 客户端

4、启用远程调试的情形

5、以前的Debugger


1、启用 Inspector

当使用 --inspect 开关时,Node.js 进程开始侦听调试客户端,默认情况下侦听 127.0.0.1:9229 的域名和端口号;每个进程都有一个唯一的 UUID 标示符。

检查器的客户端必须知晓并制定连接的域名地址、端口号以及 UUID。一个完整的 URL 看上去如:
ws://127.0.0.1:9229/0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e

如果收到了 SIGUSR1 信号 (SIGUSR1 在 Windows 下不可用),Node.js 同样会开始侦听调试信息;在 Node.js 7 以及先前的版本中,这将激活旧版本的调试 API(legacy Debugger API);在 Node.js 8 和后续版本中,将激活检查器 API(Inspector API)。

2、安全隐患

由于调试器对 Node.js 执行环境具有完全访问权限,能够连接到此端口的恶意行为者能够代替 Node.js 进程执行任意代码。理解将调试器端口暴露在公共和专用网络上所受影响的安全性是很重要的。

1、把调试端口暴露在公共网络是不安全的。

2、本地应用有足够的权限访问监视器,在调试的时候,我们可以更方便的去访问本地资源。

3、浏览器,网络套接字和同源政策

网站的开放是通过一个可以让网络套接字和 HTTP 请求在浏览器安全模式下进行的。一个初始化的 HTTP 连接必须先获得一个唯一的调试会话 ID。同源政策能够阻止这个网站与 HTTP 连接。对于其它额外的安全防范DNS 重新绑定攻击,Node.js 会先精确验证‘宿主’头连接不是一个一个指定的 IP 地址,或 localhost。

这些安全政策不允许通过指定主机名的方式直接进行远程连接。你不是通过指定 IP 地址,就是使用 ssh 管道的方式(下面将会有所陈述)绕开此限制。

3、Inspector 客户端

一些商业和开源工具可以连接到 Node 的监视器上,关于它们基本信息如下:

Chrome DevTools55+,Microsoft Edge

  • 方法1:在基于Chromium 内核的浏览器中打开chrome://inspect,或在Edge浏览器下打开 edge://inspect,点击配置按钮确,输入你目标主机的ip和端口号
  • 方法2:从/json/list下,复制devtoolsFrontendUrl对应的内容或--inspect 提示文本并粘贴到 Chrome中。

 chrome://inspect

devtoolsFrontendUrl

请注意:Node.js 和 Chrome 必须在同一个平台上运行。

在Visual Studio Code 中。

  • 在 Debug 面板中,点击“设置图标”,打开 .vscode/launch.json,选择 "Node.js" 进行初始化构建。

 

4、启用远程调试的情形

推荐你千万不要使用调试器监听公共的 IP 地址。如果你真需要允许远程调试连接,那么就请使用 SSH 代替。
我们可以登录的机器上运行命令:

node --inspect server.js

打开Chrome 浏览器,出现一下窗口。

 

chrome 控制台

 

单击图标,跳转到Node调试窗口

在你本地机器上,从你初始化一个调试客户端连接开始,你创建了一个 SSH 管道:

ssh -L 9221:localhost:9229 user@remote.example.com

ssh 管道启动,在你机器上连接到 9221 端口将被重定向到 9229 的 remote.example.com 地址上。你可以附加一个调试器,例如 Chrome 开发工具或者是指向 localhost:9221 的 Visual Studio Code。如果 Node.js 本地正在运行,应该可以调试了。

5、以前的Debugger

遗留的Debugger自 Node 7.7.0 已被弃用。请使用 --inspect 代替。

在版本 7 以及更早的版本使用 --debug 或 --debug-brk 开关启动调试时,Node.js 侦听由中断定义的调试命令,TCP 端口上的 V8 调试协议,默认为 5858。任何遵守此协议的调试客户端都可以连接并调试运行这个进程,下面有一些热门的说明。

内置的Debugger(例如:
https://nodejs.org/dist/v0.8.0/docs/api/debugger.html)
在 Node.js 内置命令行调试器中用 node debug script_name.js 启动你的脚本。你的脚本就在 Node 另外一个进程中随着 --debug-brk 启动了起来,并且初始化的 Node 进程运行 _debugger.js 脚本连接上你的目标。

$ node debug index_end.js
< Debugger attached.
< Break on start in index_end.js:1
> 1 var express = require('express');2 const app = express();3 const bodyParser = require('body-parser');
debug> c
break in index_end.js:1614   extended: true15 })); 
>16  debugger;17 app.use(express.static('public'))
  • cont、c - 继续执行
  • next、n - 下一步
  • step、s - 步入
  • out,o - 走出来
  • pause - 暂停运行代码(类似于Developer Tools中的暂停按钮)
  • .exit - 退出debug
  • scripts -列出所有加载的脚本
  • version -显示v8版本

node-inspector

使用中间进程ChromeDevTools调试Node. js应用,该进程将Chromium中使用的检查器协议转换为Node.js中使用的V8调试器协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/255648.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

苹果CMS海螺模板4.0修复版带后台 附安装教程

介绍&#xff1a; 注&#xff1a;海螺主题前身是原正版爱看模板&#xff0c;因爱看关键词被盗版抢因此更名海螺主题 这是一款带“模板后台管理系统&#xff0c;功能最全的苹果CMSv10模板”&#xff0c;也许很多功能并不常用但等你用到的时候才能体会它的精妙&#xff0c;颠覆以…

mac苹果系统数据恢复软件恢复苹果电脑硬盘数据教程

很多人用Windows系统的电脑用顺手了&#xff0c;由于工作等原因不得不换成苹果电脑&#xff0c;就感觉苹果电脑的Mac系统用起来非常不顺畅。有时甚至还会进行一些误操作&#xff0c;比如不小心删除了重要的文件、不小心抹掉了磁盘等等。这些操作会导致苹果电脑硬盘上重要的数据…

苹果4s怎么越狱教程_苹果iOS 11.4-11.4.1越狱发布:附越狱教程

来自1月30日晚间消息&#xff0c;国外Electra团队正式发布了苹果iOS 11.4 - 11.4.1越狱(1.2.0版本)&#xff0c;新的版本越狱工具支持适用iOS 11.0–11.4.1内的所有iPhone设备、iPad设备和iPad越狱(可能部分机型存在问题)。 值得一提的是&#xff0c;iOS 11.2-11.4.1系统的A7、…

iPad Air越狱白苹果怎么办?越狱白苹果修复教程

随着iOS7越狱工具的发布&#xff0c;很多果粉第一时间尝试预约&#xff0c;但是很多果粉都遇到了一个很头痛的问题&#xff1a;白苹果&#xff0c;估计这部分果粉们过不好圣诞节喽&#xff01;那这个时候应该如何修复呢&#xff1f;下面小编来介绍下如何恢复白苹果的iPad air&a…

php对接苹果cms采集接口,苹果cms的资讯采集api接口以及使用教程

好多朋友都在说 想建个电影网站&#xff0c;电影资源大家都知道去某某影视资源网去找接口&#xff1b; 蛋是这些资源网只有视频流媒体的网址&#xff0c;采集到的也是播放用的数据&#xff0c;那么苹果cms的资讯&#xff0c;以及演员是在哪里采集呢&#xff1b; 那么请往下看&a…

苹果iPhone手机怎么恢复备份?详细iOS备份怎么恢复教程

iPhone是现在非常流行的电子产品&#xff0c;是时尚的象征&#xff0c;很多人在出了新款以后&#xff0c;就迫不及待的想换新手机。这时候就碰到需要将旧手机中的资料备份到新手机的需求&#xff0c;那么iPhone新机怎么恢复备份以及iOS备份怎么恢复呢&#xff1f;本文就带大家来…

苹果手机电池恢复方法_recover恢复实用教程:苹果手机恢复误删照片的几种方法...

recover恢复实用教程&#xff1a;苹果手机恢复误删照片的几种方法&#xff0c;如今智能机的普及率相当的高&#xff0c;在众多用户的手机当中存储着很多重要的文件数据等&#xff0c;尤其是像相册中的照片&#xff0c;很多人的回忆都在里面&#xff0c;那么一旦数据出现了丢失或…

苹果电脑视频误删恢复图文教程

随着苹果电脑的使用率越来越高&#xff0c;出现苹果电脑视频丢失的风险也居高不下&#xff0c;大部分情况下都是由于误操作&#xff08;例如&#xff1a;删除、格式化&#xff09;或者是中病毒导致视频丢失。 那么&#xff0c;苹果电脑视频误删还能找回吗&#xff1f; 当然可…

苹果服务器装系统教程视频教程,苹果“雪豹”服务器系统安装傻瓜教程(多图)...

2009年8月24日&#xff0c;苹果正式推出了新一代服务器操作系统Mac OS X Server Snow Leopard&#xff0c;版本号为10.6&#xff0c;中文命名为“雪豹”&#xff0c;这和桌面版的Mac OS X 10.6是一致的。Snow Leopard Server是苹果迄今最简单易用、最快速的服务器操作系统&…

苹果5越狱教程_unc0ver5.2.0安装方法 iOS13.5用Cydia Impactor或AltStore越狱教程

unc0ver5.2.0是最新更新出来的越狱手机系统,这次的更新不仅仅只是修复了系统的稳定性,大家在更新之后可以支持iOS13.5.5Beta/iOS13.6Beta的使用,所有使用苹果手机的用户想要使用的话可以看下面的详细安装教程,为大家介绍详细的操作步骤哦! unc0ver 5.2.0 版本主要更新内容…

微服务-Elasticsearch基础篇【内含思维导图】

Elasticsearch官网&#xff1a;欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastic 注意&#xff1a;Elasticsearch官网访问和加载的耗时很长&#xff01;&#xff01;&#xff01; Lucene官网&#xff1a;Apache Lucene - Welcome to Apache Lucene 目录 一、E…

01_java基础语法

1. Java概述 1.1 Java语言背景介绍&#xff08;了解&#xff09; 语言&#xff1a;人与人交流沟通的表达方式 计算机语言&#xff1a;人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司&#xff08;Stanford University Network&#xff09;在1995年推出的…

售前工程师理解

作为一名IT售前工程师&#xff0c;如何掌握更多行业动向&#xff0c;同时提升自身竞争力&#xff1f; 从毕业后入职场到现在已经10年&#xff0c;工作角色的转变就是实施工程师——项目助理——项目经理——-售前工程师。售前工程师的职责主要是获取用户需求、需求分析、编写解…

售前工程师职业规划

先上一张售前职业规划全景图&#xff0c;下面分块介绍。 售前本位路线图 售前本位路线&#xff08;上&#xff09;——售前技术路线 转岗晋升 售前是介于技术与销售间的岗位&#xff0c;严格的说&#xff0c;售前提升的不是技术&#xff0c;而是技能&#xff0c;既包含技术、…

网络安全售前工程师需要具备哪些能力?

网络安全售前工程师需要具备哪些能力&#xff1f; 一张思维导图即可一目了然 售前工程师在项目前配合销售拿单提供技术支持&#xff0c;需要了解公司&#xff0c;公司产品&#xff0c;技术框架等细节&#xff0c;同时还需要了解行业竞争对手产品&#xff0c;各自的优劣势&…

售前工程师的工资是什么水平

根据看准网2020年4月数据&#xff0c;售前工程师月均工资为13165元。据职友集数据&#xff0c;售前工程师月均工资为12275元。售前平均工资基本在12K、13K这个水平。 除去工资之外&#xff0c;知名IT公司会有五险一金、带薪年假、周末双休&#xff08;996时有发生&#xff09;…

【职场杂谈】售前工程师岗位的理解杂谈

售前工程师岗位的理解杂谈 前言一、售前工程师的起源二、售前工程师的定义三、售前工程师核心素质四、售前工程师发展 前言 笔者于安全厂商任职售前工程师&#xff0c;也看了许多网上关于售前的相关资料。莎士比亚曾说&#xff1a;“一千个观众眼中有一千个哈姆雷特”&#xf…

各大公司2009年IT售前工程师薪水

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01; 1&#xff09;IBM 咨询部 高级顾问 22K上下…

TypeScript的10个缺点

文章目录 1. 语法繁琐2. 难以集成到一些工作流程3. 学习成本高4. 代码量多5. 编译时间长6. 在小型项目中无必要性7. 可读性降低8. 抽象层次增加9. 缺少类型定义10. 生态系统 1. 语法繁琐 TypeScript 的类型注解、泛型等语法增加了代码的复杂度和学习难度&#xff0c;对小型项目…

Mac电脑怎么设置动态桌面,heic动态桌面壁纸怎么使用

Mac动态桌面&#xff0c;它可以仅设定一张高效图片文件「High Efficiency Image File Format&#xff08;简称 HEIF&#xff09;」后&#xff0c;随着时间的推移改变桌面显示的内容。那么后缀为 .heic动态桌面壁纸怎么用呢&#xff1f; 动态壁纸设置的两个方法 动态壁纸设置方法…