如何调试 Deno 应用程序

阅读时长 5 分钟读完

Deno 是一款新型的运行时环境,它支持 TypeScript 并具有良好的安全性特性。与 Node.js 相比,Deno 具有更多的内置模块和更安全的默认设置。然而,当我们在开发 Deno 应用程序时,难免会遇到一些问题,需要进行调试。本文将介绍如何调试 Deno 应用程序。

第 1 步:安装 Deno

在开始之前,首先需要确保在本地安装了 Deno。可以通过以下命令检查是否已经安装 Deno:

如果返回类似 deno 1.9.2 的版本号信息,则说明已经成功安装了 Deno。

如果未安装 Deno,可以按照官方文档 https://deno.land/#installation 的说明进行安装。

第 2 步:编写示例代码

为了方便演示调试操作,我们可以先编写一段示例代码。在本文中,我们将简单地编写一个 HTTP 服务器,并监听指定的端口。

创建一个文件夹并进入该文件夹,在该文件夹下创建一个名为 server.ts 的文件,并写入以下代码:

该代码将使用 Deno 内置模块 https://deno.land/std/http/server.ts 中的 serve 方法创建一个 HTTP 服务器,并监听 8000 端口。在服务器启动后,将在控制台打印一条消息提示。

当 HTTP 服务器接收到请求时,将通过 req.respond() 方法向客户端返回一条消息。

第 3 步:启动调试

为了启动调试,需要在命令行中使用 --inspect 参数启动 Deno。

打开控制台,进入项目目录,并运行以下命令:

该命令使用 deno run 命令启动 Deno 运行时,并在 server.ts 文件中执行代码。使用 --inspect 参数可以启用 Chrome DevTools 的调试功能。

在运行命令后,控制台将会输出一条如下的信息:

其中,<PORT> 是调试器监听的端口号,<HASH> 是动态生成的一个连接密钥。

第 4 步:连接调试器

打开 Chrome 浏览器,并输入以下地址:

该页面将会列出所有已连接的调试设备。如果电脑是第一次连接 Deno 调试器,请先单击底部的“Configure...”按钮,并确保已启用“Discover network targets”选项。

然后,单击页面上的“Open dedicated DevTools for Node”按钮,即可打开 Chrome DevTools。

在终端输出的调试地址处单击“inspect”链接,即可连接调试器并在 Chrome DevTools 中查看调试信息。

第 5 步:设置断点

在 DevTools 中,可以使用“Source”选项卡查看程序源代码,并设置断点。

server.ts 文件中,点击行号即可设置断点。例如,可以在第 4 行代码上设置断点。

此时,当执行程序到该行代码时,程序将自动暂停,并进入调试模式,可以通过 DevTools 查看变量值、执行表达式等。

总结

通过以上步骤,我们可以轻松地调试 Deno 应用程序。使用 Chrome DevTools,可以方便地查看程序状态,调试代码逻辑,提高开发效率。

完整的示例代码如下:

-- -------------------- ---- -------
------ - ----- - ---- ---------------------------------------

----- ------ - ------- ----- ---- ---
------------------- -- --------- -- ---- -------

--- ----- ------ --- -- ------- -
  ----- ------- - --- ----------
  ------------------------------ --------------
  --------------------------------------------- -----
  ---------------------------------------------- ----------------

  -------------------- ----------- ---------
  -------------
    ------- ----
    --------
    ----- ------- -------
  ---
-

希望本文对你有所帮助,如果你对 Deno 的调试有更深入的了解和实践,欢迎分享和交流!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6456118a968c7c53b0958df7

纠错
反馈