찾다
개발 도구VSCodeVSCode 디버깅 튜토리얼(1): 기본 사항 이해

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

Jul 02, 2020 pm 01:46 PM
vscode디버그

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

다음 몇 개의 기사에서는 전문적인 방식으로 JavaScript 및 TypeScript 코드를 디버그하는 방법을 살펴보겠습니다. console.log를 돌아다니는 대신 Visual Studio Code에 내장된 디버거를 사용하는 방법을 알아봅니다. console.log 到处乱飞。

调试器允许你在程序运行时打开程序,查看其状态、变量、暂停并逐步观察数据流。你甚至可以运行代码片段,并在运行时环境中尝试想法。所有这些都无需停止程序后修改代码(添加 console.log!)并重新启动。你能够使用调试器解决问题并更快地了解代码。

我们先从一些简单的 Node.js 代码开始,然后着眼于调试浏览器程序、Express 服务器、GraphQL、TypeScript、Serverless、Jest 测试、Storybook 等等,不过在此之前要先了解一些必要的基础知识!即使你不喜欢服务器端 Node.js,仍然希望你先看完本文。

获取代码

该系列在 GitHub 上的代码:https://github.com/thekarel/debug-anything

我们第一个话题的代码非常简单——先把下面的代码复制粘贴到你的  index.js 文件中:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3456;
const serverUrl = `http://${hostname}:${port}`

const server = http.createServer((req, res) => {
  const name = 'World'

  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end(`Hello, ${name}!\n`);
});

server.listen(port, hostname, () => {
  console.log(`Server running at ${serverUrl}`);
});

现在继续并在 VS Code 中打开文件夹:

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

为了确保到一切正常,请试着运行它:

node index.js

然后访问 http://127.0.0.1:3456,你应该会看到 Hello, World!

请确保立即停止node index.js命令,否则你将收到一个丑陋的“错误: Error: listen EADDRINUSE error soon 

代码本身很简单:运行HTTP服务器,并用 “Hello,World!” 响应每个请求。很简单对不对?但是这段简单的代码足以了使我们解调试的基本概念。

添加新功能

让我们向服务器添加一个功能:我们不再返回硬编码的消息 "Hello, World!",而是从查询中得到 name,在点击 http://127.0.0.1:3456/?name=Coco 时会回复 Hello, Coco!

我们先假装不知道该怎么做,运行服务器后,发送请求并查看 Coco 出现在什么地方不是更有趣吗?试一试吧。启动调试器!

启动调试器

确保已在 VS Code 中打开 index.js,单击调试器图标,单击“运行并调试”,然后单击 Node.js:

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

现在你的服务器正在调试模式下运行!访问 http://127.0.0.1:3456?name=Coco 你不会看到任何不同,应该仍然返回默认消息。

接下来,在代码中添加一个断点(breakpoint),这样在下次访问服务器 URL 时将会暂停执行。可以通过单击编辑器左边的行号来实现:

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

访问 http://127.0.0.1:3456?name=Coco,VS Code 将弹出一个视图并暂停服务器:

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

我们需要先找出查询中 name 的位置,这样才能完成后面的工作。在左侧边栏 中:你会看到一个名为 Variables 的部分。在 Local 下,IDE 显示了函数本地作用域的所有变量。有一个看上去可能性很大的:req

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

现在我们知道了,请求查询字符串位于 req.url 中,在文档的帮助下,我们把代码脚本修改为:

const http = require('http');
const url = require('url'); 

const hostname = '127.0.0.1';
const port = 3456;
const serverUrl = `http://${hostname}:${port}`

const server = http.createServer((req, res) => {
  const {name} = url.parse(req.url, true).query;  

  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end(`Hello, ${name}!\n`);
});

server.listen(port, hostname, () => {
  console.log(`Server running at ${serverUrl}`);
});

由于代码已经被修改,所以需要重新启动服务器。使用调试器很简单:你可以按VSCode 디버깅 튜토리얼(1): 기본 사항 이해或单击绿色的重启图标:

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

你也可以禁用断点,因为现在不需要它了:

VSCode 디버깅 튜토리얼(1): 기본 사항 이해

访问 http://127.0.0.1:3456?name=Coco

디버거를 사용하면 프로그램이 실행되는 동안 프로그램을 열고, 상태, 변수를 확인하고, 일시 중지하고, 데이터 흐름을 단계별로 관찰할 수 있습니다. 코드 조각을 실행하고 런타임 환경에서 아이디어를 시험해 볼 수도 있습니다. 코드를 수정(console.log 추가!)하고 프로그램을 중지한 후 다시 시작하지 않고도 이 모든 작업을 수행할 수 있습니다. 디버거를 사용하면 문제를 해결하고 코드를 더 빠르게 이해할 수 있습니다.

몇 가지 간단한 Node.js 코드로 시작한 다음 브라우저 프로그램, Express 서버, GraphQL, TypeScript, Serverless, Jest 테스트, Storybook 등 디버깅을 살펴보겠습니다. 하지만 그 전에 몇 가지 필수 기본 사항을 이해해야 합니다! 서버 측 Node.js가 마음에 들지 않더라도 이 글을 먼저 읽어보시길 바랍니다.

코드 받기

🎜🎜GitHub에 있는 이 시리즈의 코드: https://github.com/thekarel/ debug -anything🎜
🎜첫 번째 주제에 대한 코드는 매우 간단합니다. 먼저 다음 코드를 복사하여 index.js 파일에 붙여넣으세요. 🎜rrreee🎜이제 다음에서 엽니다. VS 코드에서 폴더를 엽니다: 🎜🎜3. png 🎜🎜모든 것이 제대로 작동하는지 확인하려면 다음을 실행해 보세요. 🎜rrreee🎜그런 다음 http://127.0.0.1:3456을 방문하면 Hello, World ! . 🎜🎜node index.js 명령을 즉시 중지하세요. 그렇지 않으면 보기 흉한 "오류: 오류: Listen EADDRINUSE 오류가 곧 발생합니다. 🎜🎜코드 자체는 간단합니다. HTTP 서버를 실행하고 "Hello, World!"를 호출합니다. ” 모든 요청에 ​​대한 응답은 매우 간단합니다. 하지만 이 간단한 코드만으로도 디버깅의 기본 개념을 이해하기에 충분합니다. 🎜🎜새 기능 추가🎜🎜서버에 기능을 추가해 보겠습니다. 하드 코딩된 메시지 "Hello, World!"를 반환하는 대신 쿼리에서 name을 가져오고, http://127.0.0.1:3456/?name=CocoHello, Coco!로 답장 🎜🎜먼저 모르는 척 하고 보내드립니다 서버를 실행한 후 Coco가 나타나는 위치를 요청하고 확인하는 것이 더 재미있지 않을까요? 🎜🎜 🎜🎜VS Code에서 index.js가 열려 있는지 확인하고 디버거 아이콘을 클릭한 다음 실행 및 디버그를 클릭하고 Node.js를 클릭하세요. 🎜 🎜VSCode 디버깅 튜토리얼(1): 기본 사항 이해🎜🎜이제 서버가 디버그 모드에서 실행 중입니다! http://127.0.1을 방문하세요. :3456?name=Coco 아무런 차이가 없으며 기본 메시지가 계속 반환되어야 합니다. 🎜🎜다음으로, 다음과 같이 코드에 중단점을 추가하면 실행이 일시 중지됩니다. 서버 URL에 액세스하려면 편집기 왼쪽에 있는 줄 번호를 클릭하면 됩니다: 🎜🎜VSCode 디버깅 튜토리얼(1): 기본 사항 이해🎜🎜http://127.0.0.1:3456?name=Coco를 방문하면 VS Code가 뷰를 표시하고 서버를 일시 중지합니다. 🎜🎜VSCode 디버깅 튜토리얼(1): 기본 사항 이해🎜🎜먼저 쿼리에서 이름의 위치를 ​​찾아야 합니다. 왼쪽 사이드바변수라는 섹션이 표시됩니다. 로컬 아래에 IDE는 함수의 로컬 범위에 있는 모든 변수를 표시합니다. 가능성이 매우 높아 보이는 것이 있습니다: req: 🎜🎜VSCode 디버깅 튜토리얼(1): 기본 사항 이해🎜🎜 이제 우리는 요청 쿼리 문자열이 req.url, 문서의 도움으로 코드 스크립트를 다음과 같이 수정했습니다. 🎜rrreee🎜코드가 수정되었으므로 서버를 다시 시작해야 합니다. . 디버거 사용은 쉽습니다. VSCode 디버깅 튜토리얼(1): 기본 사항 이해를 누르거나 녹색 다시 시작 아이콘을 클릭하세요. 🎜🎜 🎜🎜 중단점은 더 이상 필요하지 않으므로 비활성화할 수도 있습니다. 🎜🎜VSCode 디버깅 튜토리얼(1): 기본 사항 이해🎜🎜http://127.0.0.1:3456?name=Coco를 방문하여 작업 결과를 확인하세요! 🎜🎜디버거를 계속 탐색할 수 있기를 바랍니다. 다음 기사에서는 "step over", "step in" 및 "step out" 기능을 사용하여 코드를 한 줄씩 디버깅할 것입니다. 🎜🎜🎜VSCode 디버깅 튜토리얼 시리즈: 🎜

1, 기본 지식

2, 라인별 단계별 디버깅

영어 원본 주소:: https://charlesagile.com/debug-series-nodejs-browser-javascript

저자: Charles Szilagyi

이 기사는 다음에서 복제되었습니다: https://segmentfault.com/a/1190000022764213

권장 관련 튜토리얼: vscode 소개 튜토리얼

위 내용은 VSCode 디버깅 튜토리얼(1): 기본 사항 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Visual Studio는 무엇에 사용됩니까?Visual Studio는 무엇에 사용됩니까?Apr 16, 2025 am 12:04 AM

VisureStudio는 C#, C, Python, JavaScript 등과 같은 다양한 프로그래밍 언어를 지원합니다. 1) 구문 강조 표시, 코드 완료 및 오류 프롬프트를 제공하여 코드 작성을 돕습니다. 2) 통합 디버거는 코드를 단계별로 실행하고 중단 점을 설정하며 변수 값을 볼 수 있습니다. 3) GIT, 코드 변경 관리 및 협업 개발과 같은 버전 제어 시스템을 지원합니다. 4) 프로젝트 관리 기능은 유지 관리 및 확장 성을 보장하기 위해 대규모 프로젝트를 구성하고 구축합니다.

VSCODE에 여러 줄의 주석을 입력하는 방법VSCODE에 여러 줄의 주석을 입력하는 방법Apr 15, 2025 pm 11:57 PM

vs 코드 멀티 라인 주석의 방법은 다음과 같습니다. 1. 바로 가기 키 (ctrl k c 또는 cmd k c); 2. 수동으로 주석 기호 ( / /)를 추가합니다. 3. 선택 메뉴 ( "댓글 블록"); 4. 확장을 사용하십시오. 5. 재귀 주석 ( /* /) 및 블록 주석 ({ /및 /}). 멀티 라인 주석은 코드 가독성과 유지 관리를 향상시키는 데 도움이되지만 과용을 피해야합니다.

VScode와 Pycharm의 차이점은 무엇입니까?VScode와 Pycharm의 차이점은 무엇입니까?Apr 15, 2025 pm 11:54 PM

VS Code와 Pycharm의 주요 차이점은 다음과 같습니다. 1. 확장 성 : VS 코드는 확장 가능하며 플러그인 시장이 풍부하고 Pycharm은 기본적으로 더 넓은 기능을 가지고 있습니다. 2. 가격 : vs 코드는 무료이며 오픈 소스이며 Pycharm은 전문 버전에 대해 지불됩니다. 3. 사용자 인터페이스 : VS 코드는 현대적이고 친근하며 Pycharm은 더 복잡합니다. 4. 코드 내비게이션 : 대 코드는 소규모 프로젝트에 적합하며 Pycharm은 대규모 프로젝트에 더 적합합니다. 5. 디버깅 : vs 코드는 기본적이며 Pycharm은 더 강력합니다. 6. 코드 리팩토링 : vs 코드는 기본적이며 Pycharm은 더 풍부합니다. 7. 코드

vscode에 작성된 언어vscode에 작성된 언어Apr 15, 2025 pm 11:51 PM

VSCODE는 TypeScript 및 JavaScript로 작성되었습니다. 먼저, 핵심 코드베이스는 JavaScript를 확장하고 유형 확인 기능을 추가하는 오픈 소스 프로그래밍 언어 인 TypeScript로 작성되었습니다. 둘째, VSCODE의 일부 확장 및 플러그인은 JavaScript로 작성됩니다. 이 조합은 VSCODE가 유연하고 확장 가능한 코드 편집기로 만듭니다.

중국어로 네트워킹하지 않고 VSCODE를 설정하는 방법중국어로 네트워킹하지 않고 VSCODE를 설정하는 방법Apr 15, 2025 pm 11:48 PM

중국어로 오프라인으로 설정 : 중국어 팩을 다운로드, 언어 팩 파일 해제, 언어 팩 파일 복사, 재시작 대 중국어 설정 (인터페이스 언어 변경을 선택할 수 있음).

VSCODE 설정 중국 튜토리얼VSCODE 설정 중국 튜토리얼Apr 15, 2025 pm 11:45 PM

vs 코드는 중국 설정을 지원하며, 설정 패널을 열고 "로케일"을 검색하여 완료 할 수 있습니다. "locale.language"를 "zh-cn"(단순화 된 중국어) 또는 "Zh-TW"(전통 중국어)로 설정하십시오. 설정을 저장하고 코드를 다시 시작합니다. 설정 메뉴, 도구 모음, 코드 프롬프트 및 문서는 중국어로 표시됩니다. 파일 태그 형식, 항목 설명 및 진단 프로세스 언어와 같은 다른 언어 설정도 사용자 정의 할 수도 있습니다.

VSCODE 설치 자습서VSCODE 설치 자습서Apr 15, 2025 pm 11:42 PM

Visual Studio 코드를 설치하는 방법은 무엇입니까? 시각적 스튜디오 코드 구성 설정을 시작하려면 설치 프로그램을 설치하려면 설치 프로그램을 다운로드하십시오. 설치 확장자 시작 시작 인코딩

VSCODE로 중국 모드를 전환하는 방법VSCODE로 중국 모드를 전환하는 방법Apr 15, 2025 pm 11:39 PM

vs Code to Chinese 모드 : 설정 인터페이스를 엽니

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구