使用 Visual Studio Code 调试 ExpressJS 服务器端代码

2024-03-25

我使用以下方法制作了一个简单的 CRUD 应用程序

  • 快车:4.13.4
  • 吞咽:3.9.1
  • 蒙戈数据库:v3.0.6
  • 反应js:15.0.2。
  • 节点:4.0.0

对于服务器端代码,我听说可以通过调试Visual Studio 代码 (v1.1.1.).

从 git bash 我通过以下方式启动应用程序gulp serve.但我不知道如何开始调试!

我的 gulp 任务的一个片段。

gulp.task('serve',['bundle','start-server'],function(){

    browserSync.init({
        proxy:'http://localhost:3000',
        port:9001
    });

});

当我们单击 VS Code 上的调试按钮启动调试界面时,我们会看到一个 launch.json ,其中有两个配置选项。

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Launch",
        "type": "node",
        "request": "launch",
        "program": "${workspaceRoot}",
        "stopOnEntry": false,
        "args": [],
        "cwd": "${workspaceRoot}",
        "preLaunchTask": null,
        "runtimeExecutable": null,
        "runtimeArgs": [
            "--nolazy"
        ],
        "env": {
            "NODE_ENV": "development"
        },
        "externalConsole": false,
        "sourceMaps": false,
        "outDir": null
    },
    {
        "name": "Attach",
        "type": "node",
        "request": "attach",
        "port": 3000,
        "address": "localhost",
        "restart": false,
        "sourceMaps": false,
        "outDir": null,
        "localRoot": "${workspaceRoot}",
        "remoteRoot": null
    }
]

}

我猜这些是启动并附加配置。但是我们如何通过 debug 来实际启动 gulp。

我见过人们通过修改“program”键来启动 grunt 进程"program": "/usr/local/bin/grunt"。但似乎我无法做到这一点

即使我通过 git bash 启动了我的应用程序并尝试按上述方式“附加”调试器here https://stackoverflow.com/questions/34652104/how-to-debug-express-js-server-code-on-node-using-visual-studio-code-by-attachin,vs code 只是显示一条错误消息,指出“已取消”!

TLDR;

  • 当我们在 VS Code 中启动调试时,如何启动 gulp(或)grunt(或)启动服务器?
  • 是否可以通过 cmd 或 bash 从外部启动应用程序,并且仍然能够使用调试器调试服务器端代码?如果是这样,launch.json 需要进行哪些更改?

好吧,后来我终于通过启动和附加成功调试了无数书签和链接。

调试通过launch config:

      {
            "name": "Launch",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/server.js",
            "stopOnEntry": true,
            "args": [],
            "cwd": "${workspaceRoot}",
            "preLaunchTask": null,
            "runtimeExecutable": null,
            "runtimeArgs": [
                "--nolazy"
            ],
            "env": {
                "NODE_ENV": "development"
            },
            "externalConsole": false,
            "sourceMaps": false,
            "outDir": null
        }

在下拉列表中选择启动选项的情况下,按 VSC 调试视图上的绿色 > 按钮,您应该在 VSC 控制台中看到类似的内容。

node --debug-brk=21735 --nolazy server.js

调试器应该在 server.js 文件的第一行暂停。 使用断点进行调试! :)

调试通过attach config:

       {
            "name": "Attach",
            "type": "node",
            "request": "attach",
            "port": 5858,
            "address": "localhost",
            "restart": false,
            "sourceMaps": false,
            "outDir": null,
            "localRoot": "${workspaceRoot}",
            "remoteRoot": null
        }

从外部启动您的服务器

$node --debug-brk server.js

您的提示应暂停于

Debugger listening on port 5858

按 VSC 调试视图上的绿色 > 按钮,并在下拉列表中选择附加选项,调试器应自动附加自身并在 server.js 的第一行暂停

调试令人作呕

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Visual Studio Code 调试 ExpressJS 服务器端代码 的相关文章

  • 将音频与视频流合并 Node.js

    我正在创建 YouTube 视频下载器并且正在使用ytdl core库 它无法下载带有音频的高质量视频 因为 youtube 将其放在另一个文件中 但我需要将其全部下载到一个文件中 我已经这样做了 app get download asyn
  • _CrtCheckMemory使用示例

    我试图了解如何使用 CrtCheckMemory追踪我正在开发的 Windows 应用程序中的堆损坏 我似乎无法让它返回false 这是我的测试代码 int test new int 1 for int i 0 i lt 100 i tes
  • 使用 enctype="multipart/form-data" 时出现 CSRF 错误

    每当我将 enctype multipart form data 添加到我的 html 表单中时 我得到ForbiddenError invalid csrf token 如果我删除 enctype 它就可以工作 我发送的 csrf 代码如
  • Eclipse 调试“未找到源”

    我刚刚开始使用 Eclipse 所以慢慢来吧 但是 当尝试调试 JUnit 测试用例时 我会收到一个对话框 指出当我在测试方法中的代码中找到此行时 未找到源代码 Assert assertEquals 1 contents size 我知道
  • Silverlight 打印中“对话框必须由用户启动”安全异常的另一个技巧

    当我尝试在 Silverlight 中打印一些内容时 我收到臭名昭著的 对话框必须由用户启动 安全异常 正如您所看到的 该对话框尽可能由用户启动 约翰爸爸也帮不了我太多 http johnpapa net silverlight print
  • 禁用 chrome React DevTools 以进行生产

    我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE ENV 因此 我可以删除反应警告 控制台中的错误报告 甚至我的代码来禁用某些功能 例如react addons perf的要求 而且效果很
  • 如何使用 Passport /Facebook 策略/验证 Supertest 请求?

    我使用 Passport js 进行身份验证 Facebook 策略 并使用 Mocha 和 Supertest 进行测试 如何使用 Supertest for Facebook 策略创建会话并发出经过身份验证的请求 这是用户未登录时的示例
  • Visual Studio 调试器 - 自动变量分配

    我正在开发一个多开发人员项目 正在开发的应用程序是通过启动器应用程序启动的 该应用程序传递登录用户 位置等参数 现在 当我调试应用程序时 我在代码上设置了一个断点解析输入参数 并将用户名变量分配给我的用户名等 我可以对这些值进行硬编码 但是
  • 在 VS Code 中使用 Prettier 格式化 .ejs 文件

    我想使用 prettier 通过添加自定义规则来格式化我的 ejs 文件 现在我正在使用 html 的文件关联作为 ejs 文件 我在 settings json 文件中添加了以下代码 文件 关联 ejs html 不幸的是 Prettie
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 如何为我的 Android Market APK 创建证书?

    我想将我的第一个 APK 应用程序上传到 Android Market 但我收到了此错误 顺便说一下 在 stackoverflow 中搜索时并没有引导我找到正确的链接 市场不接受使用调试证书签名的 APK 创建有效期至少 50 年的新证书
  • 如何进入system.web.mvc

    有谁知道我如何进入system web mvc 我收到隐藏在 System Web Mvc DefaultModelBinder CreateModel 方法中的错误 无法创建抽象类 并且我无法判断代码的哪一部分导致了问题 有人建议我可以从
  • 为什么 html 中的 AngularJS 错误没有显示在控制台中?

    Here s a fiddle http jsfiddle net 6y7odxmj 3 用于说明 当 ng click 指令 例如 调用未在控制器的 scope 或其父级 上定义的函数时 它会默默地失败 当我尝试调试网页时 这种行为令人抓
  • 如何在 Visual Studio Code 中扩展 launch.json 中的 $PATH?

    我有一些 shell 脚本 我想在 Visual Studio Code 中调试期间通过代码名称执行这些脚本 我需要扩展 PATH 环境变量才能实现它 目前 我在 launch json 中有以下 json name Debug Linux
  • VSCode 某些快捷键无法正常使用

    Windows 7 x64 上的最新版本 1 40 1 我正在使用 Java 进行开发 最常见的快捷键是 转到定义 F12 和 自动修复 ctrl dot 我在另一台1 40 1的计算机上测试了它 它工作正常 我已遵循按键绑定故障排除指南
  • 如何在 Ruby 2.0 中使用调试器?

    我知道调试器 gem 不会也永远不会与 ruby 2 0 per 兼容正式支持ruby 2 X https github com cldwalker debugger issues 47 issuecomment 44027702 Ruby
  • 泛型类上的 DebuggerDisplay

    我在应用时遇到问题DebuggerDisplay泛型类的属性 DebuggerDisplay foo class Foo DebuggerDisplay Bar t class Bar
  • 在 python 中,VSCode 调试器不会单步执行外部代码。无法弄清楚如何编辑 launch.json 中的“justMyCode”

    我一直在提到https code visualstudio com docs python debugging justmycode https code visualstudio com docs python debugging jus
  • JavaScript IDE/编译器

    现在 我希望你们中的一些人能够理解我的要求 我是编程新手 我在 Codecademy com 上了解了 JavaScript 我使用 labs codecademy com 来编写 JavaScript 但它有限制 对于编程新手来说 我可以
  • 在 Angular2 (TS) 中导入模块的选项

    我知道有一些进展或至少有计划 5093 https github com Microsoft TypeScript issues 5039 5728 https github com Microsoft TypeScript pull 57

随机推荐

  • 在调用回调之前,如何等待异步创建的对象完全可用?

    我正在尝试创建一个可以创建新标记的函数 我需要能够在回调中处理新标记的一些属性 问题是marker立即创建并可用于调用回调 但某些属性尚不可用 如果我在尝试访问属性之前等待两秒钟 它就可以正常工作 这使我相信该对象在创建后仍在异步生成自身
  • 如何编译并运行单个class文件cs文件?

    抱歉 如果这是微不足道的 我是 Visual Studio 的新手 我有一个项目 其中包含多个类文件 cs 文件 如何单独运行每个文件 每当我进行调试时 它只选择一个 cs 文件 谢谢 编辑 来自使用 netbeans 的 java 背景
  • 这个HQL有什么问题吗? “节点没有数据类型”

    session createQuery Select attribute from GoodsSection tgs join gs ascendants ags join ags attributes attribute where at
  • 如何编写一个快速函数来计算数字的总除数?

    我必须找到给定数字 N 的除数总数 其中可以大到 10 14 我尝试计算最多 10 7 的素数 然后使用素数因子的指数找到除数 但是事实证明它太慢了 因为使用筛子找到素数需要 0 03 秒 如果可能的话 如何更快地计算除数总数而不计算素数
  • TS2307:找不到模块“./App.vue”或其相应的类型声明

    我想使用 typescript Vue 3 开发 google chrome 扩展 在谷歌浏览器扩展弹出索引中 打字稿代码index ts好像 import createApp from vue import App from App vu
  • 有没有办法在初始化后使用谓词修改获取的结果?

    我正在尝试为现有 CoreData 应用程序 简单的日志记录应用程序 构建搜索视图 我将所有数据存储在 CoreData 中 并使用 FetchRequest State private var searchPredicate NSPred
  • 使用子/父 NSManagedObjectContext 时出现奇怪的行为

    我正在开发一个应用程序 我需要在后台线程上计算事物 多秒操作 并写入事物 与服务器同步数据 因此 我使用两个 NSManagedObjectContext MOC 一个子对象和一个父对象 并且它们必须始终保持同步 为了确保它们同步 我总是编
  • Laravel 预加载 - 仅加载特定列

    我正在尝试在 Laravel 中加载模型 但只返回某些列 我不希望呈现整个急切加载的表 public function car return this gt hasOne Car id gt get emailid name 我收到以下错误
  • 为什么 OldCreateOrder 属性不断返回 true?

    我声明 Unit BaseGuardian TBaseGuardianService class TService public end implementation R dfm 和 dfm 的代码 object BaseGuardianS
  • 不同长度的tf-idf文档

    我在网上搜索了有关在文档长度差异很大的情况下标准化 tf 等级的信息 例如 文档长度从 500 字到 2500 字不等 我发现的唯一标准化讨论是将术语频率除以文档的长度 因此导致文档的长度没有任何意义 不过 这种方法对于标准化 tf 如果有
  • Datareader、DataAdapter、Dataset、DataView 之间的区别

    有人可以解释一下 DataReader DataAdapter Dataset 和 DataView 之间的区别吗 Quickly DataReader 是一组结果上的只进迭代器 当您不需要随机访问 换句话说 您无法向后 时 这通常是处理记
  • 从 jQuery.post AJAX 调用返回数据?

    你好 我正在调用这个函数 function getCoordenadas var coordenadas new Array post
  • 无法从 Storm 教程运行 Storm-starter 拓扑

    当遵循 Storm starter 中的指南时repo https github com apache storm tree master examples storm starter 我无法实际运行任何拓扑 就像ExclamationTo
  • 根据另一个列值启用或禁用剑道网格列

    我有一个剑道网格 其中有一个复选框 它是使用客户端模板呈现的 如果选中该复选框 那么我希望启用与其相邻的列 如果未选中该复选框 则应禁用该列 即用户不应该能够对其进行编辑或键入 我尝试通过将编辑事件绑定到网格来实现此目的 但仅当网格进入编辑
  • Axios请求拦截器等待ajax调用完成

    我有一个用于 axios 调用的请求拦截器 它检查我的 jwt 令牌并在必要时调用刷新 axios interceptors request use config gt const state store getState get rene
  • PHPUnit 没有捕获预期的异常

    我有一组测试 我想测试我的类是否在正确的时间抛出异常 在示例中 我的类使用 get 魔术方法 因此我需要测试检索无效属性时是否引发异常 function testExceptionThrownWhenGettingInvalidProper
  • 使用嵌入式 Microsoft Query 在 Excel Mac 2016 ODBC 连接中存储密码

    我正在构建一个 Excel Mac 2016 文件 该文件使用嵌入的 Microsoft Query 服务与 SQL Server 的多个连接 问题是我无法在连接中存储密码 每次打开文件时 Excel 都会询问每个连接的密码 尽管它始终相同
  • 如何从 XML 数据中删除非 ASCII 字符

    我有一些采用以下格式的 XML 数据 我的应用程序应该使用 XMLReader 读取此内容并对其进行一些处理 但是 为了实现这一点 我需要删除或替换每行的第一部分 特别是 lt lt
  • 在 Bash 中将一个字符替换为另一个字符

    我需要替换一个空格 带有一个点 在 bash 中的字符串中 我认为这非常简单 但我是新手 所以我不知道如何修改此用途的类似示例 使用内联 shell 字符串替换 例子 foo replace first blank only bar foo
  • 使用 Visual Studio Code 调试 ExpressJS 服务器端代码

    我使用以下方法制作了一个简单的 CRUD 应用程序 快车 4 13 4 吞咽 3 9 1 蒙戈数据库 v3 0 6 反应js 15 0 2 节点 4 0 0 对于服务器端代码 我听说可以通过调试Visual Studio 代码 v1 1 1