在本章中,我们将探讨如何使用 Deno 构建 Web 应用程序。Deno 是一个现代的 JavaScript 和 TypeScript 运行时,它具有许多创新的功能和安全特性,使其成为构建 Web 应用的理想选择。我们将从创建一个简单的 HTTP 服务器开始,逐步深入到更复杂的主题,如处理请求、响应、路由以及使用外部库。
创建基本的 HTTP 服务器
首先,我们需要安装 Deno。可以通过以下命令安装:
curl -fsSL https://deno.land/x/install/install.sh | sh
安装完成后,我们可以通过运行 deno run
来启动一个简单的 HTTP 服务器。下面是一个基本的例子:
import { serve } from "https://deno.land/std@0.168.0/http/server.ts"; const s = serve({ port: 8000 }); console.log("Server running on http://localhost:8000"); for await (const req of s) { req.respond({ body: "Hello World\n" }); }
这个脚本会启动一个 HTTP 服务器,并监听端口 8000。当我们访问 http://localhost:8000
时,将看到“Hello World”。
处理请求与响应
处理不同的请求类型(如 GET、POST 等)和响应是构建 Web 应用程序的关键部分。Deno 提供了强大的工具来处理这些操作。
获取请求参数
在处理请求时,我们可能需要获取 URL 参数或查询字符串。可以使用 url
模块来解析 URL:
import { parse } from "https://deno.land/std@0.168.0/encoding/yaml.ts"; import { parse as parseUrl, UrlWithParsedQuery } from "https://deno.land/std@0.168.0/url/mod.ts"; const url = parseUrl(req.url); console.log(url.query); // 输出查询字符串对象
发送响应
发送响应时,我们可以根据需要设置不同的状态码和头部信息。例如,如果想要发送 JSON 数据作为响应:
-- -------------------- ---- ------- ------ - ---- - ---- ----------------------------------------------- ------------- ------- ---- -------- --- --------- --------------- ------------------- --- ----- ---------------- -------- ------- ------- --- ---
路由管理
在实际应用中,我们通常需要根据不同的路径来处理不同的逻辑。Deno 并没有内置的路由系统,但我们可以轻松地自己实现或使用第三方库。
手动实现路由
一个简单的手动实现方法如下:
-- -------------------- ---- ------- ------ - ----- - ---- ----------------------------------------------- ----- - - ------- ----- ---- --- --- ----- ------ --- -- -- - ----- --- - --- ------------- -- ------------- --- --------- - ------------- ----- ------- ------- --- - ---- -- ------------- --- ----------- - ------------- ----- --------- ------- --- - ---- - ------------- ------- ---- ----- ---- ------ --- - -
使用第三方库
除了手动实现,也可以考虑使用像 Oak 这样的第三方库来简化路由管理。Oak 是一个基于中间件的框架,提供了一个简洁的方式来定义路由和处理请求。
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ----- --- - --- -------------- ------------- -- - ----------------- - ------- -------- --- ----- ------------ ----- ---- ---
中间件
中间件是一种强大的机制,允许我们在请求到达最终处理函数之前或之后执行某些操作。这可以用于日志记录、身份验证等多种用途。
使用中间件
使用 Oak 框架时,中间件的使用非常直观。例如,我们可以添加一个简单的日志中间件:
-- -------------------- ---- ------- ------ - ------------ ------ - ---- --------------------------------- ----- ------ - --- --------- --------------- ----- -- - ----------------- - ------- -------- --- ----- --- - --- -------------- ------------- ----- ----- -- - --------------------- --------------------- --------------------- ----- ------- --- ------------------------- --------------------------------- ----- ------------ ----- ---- ---
在这个例子中,我们定义了一个中间件来记录每个请求的方法和 URL,然后将其应用到整个应用程序中。
总结
通过以上内容,我们介绍了如何使用 Deno 构建一个简单的 Web 应用程序,包括创建基本的 HTTP 服务器、处理请求和响应、路由管理以及使用中间件。这只是 Deno 能力的一部分,随着你对 Deno 的深入了解,你可以构建出更加复杂和功能丰富的 Web 应用。