Deno 是一款新型的运行时环境,它支持 TypeScript 并具有良好的安全性特性。与 Node.js 相比,Deno 具有更多的内置模块和更安全的默认设置。然而,当我们在开发 Deno 应用程序时,难免会遇到一些问题,需要进行调试。本文将介绍如何调试 Deno 应用程序。
第 1 步:安装 Deno
在开始之前,首先需要确保在本地安装了 Deno。可以通过以下命令检查是否已经安装 Deno:
deno --version
如果返回类似 deno 1.9.2
的版本号信息,则说明已经成功安装了 Deno。
如果未安装 Deno,可以按照官方文档 https://deno.land/#installation 的说明进行安装。
第 2 步:编写示例代码
为了方便演示调试操作,我们可以先编写一段示例代码。在本文中,我们将简单地编写一个 HTTP 服务器,并监听指定的端口。
创建一个文件夹并进入该文件夹,在该文件夹下创建一个名为 server.ts
的文件,并写入以下代码:
import { serve } from "https://deno.land/std/http/server.ts"; const server = serve({ port: 8000 }); console.log("Server is listening on port 8000"); for await (const req of server) { req.respond({ body: "Hello, Deno!" }); }
该代码将使用 Deno 内置模块 https://deno.land/std/http/server.ts
中的 serve
方法创建一个 HTTP 服务器,并监听 8000 端口。在服务器启动后,将在控制台打印一条消息提示。
当 HTTP 服务器接收到请求时,将通过 req.respond()
方法向客户端返回一条消息。
第 3 步:启动调试
为了启动调试,需要在命令行中使用 --inspect
参数启动 Deno。
打开控制台,进入项目目录,并运行以下命令:
deno run --inspect server.ts
该命令使用 deno run
命令启动 Deno 运行时,并在 server.ts
文件中执行代码。使用 --inspect
参数可以启用 Chrome DevTools 的调试功能。
在运行命令后,控制台将会输出一条如下的信息:
Debugger listening on ws://127.0.0.1:<PORT>/<HASH>
其中,<PORT>
是调试器监听的端口号,<HASH>
是动态生成的一个连接密钥。
第 4 步:连接调试器
打开 Chrome 浏览器,并输入以下地址:
chrome://inspect/#devices
该页面将会列出所有已连接的调试设备。如果电脑是第一次连接 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