Deno 自从发布于 2020 年以来,得到了许多开发者的喜欢,它弥补了 Node.js 在安全性和模块管理方面的不足。在 Deno 中使用 TypeScript,各种鲜亮的语言特性给编程带来了更好的经验。在本文中我们将讨论如何在 Deno 中使用 TypeScript 创建路由。
准备工作
我们需要先安装 Deno,您可以在官网上找到安装指南。然后我们需要安装一些必要的依赖项,包括 oak
和 std
库。
import { Application, Router } from "https://deno.land/x/oak/mod.ts"; import * as log from "https://deno.land/std/log/mod.ts"; import { existsSync } from "https://deno.land/std/fs/mod.ts";
其中,oak
库提供了用于构建 Web 应用程序的工具,包括 HTTP 服务器和路由。同时,std
库提供了许多实用的函数和工具。
创建路由
路由可以理解为一张地图,根据请求的路径转发到相应的处理程序。在 Deno 中使用 oak
库可以轻松地创建路由。
const router = new Router(); router .get("/", (context) => { context.response.body = "Welcome to Deno!"; }) .get("/users", (context) => { context.response.body = "List of users"; });
上面的代码创建了一个路由,其中:
router
变量用于创建路由实例。.get()
方法创建了一个从根路径/
和/users
路径上的路由。当访问路径为/
时,响应信息为Welcome to Deno!
,而当访问路径为/users
时,响应信息为List of users
。
集成中间件
中间件是在路由处理程序之前执行的功能模块。在 oak
库中,我们可以使用 .use()
方法将中间件集成到我们的应用程序中。
const app = new Application(); app.use(async (context, next) => { await next(); const ms = Date.now() - context.state.startTime; log.info(`${context.request.method} ${context.request.url.pathname} - ${ms}ms`); }); app.use(router.routes()); app.use(router.allowedMethods());
上述代码中,我们将路由中间件设置为应用程序的最后一个中间件。router.routes()
方法将路由路由到相应的处理程序,而 router.allowedMethods()
将处理来自未定义方法的请求。
同时,我们集成了一个中间件记录请求响应耗时。
创建服务器
我们可以使用 app.listen()
方法启动一个 HTTP 服务器:
await app.listen({ port: 8000 });
完整示例代码
下面的代码演示了如何在 Deno 中使用 TypeScript 创建路由:
-- -------------------- ---- ------- ------ - ------------ ------ - ---- --------------------------------- ------ - -- --- ---- ----------------------------------- ------ - ---------- - ---- ---------------------------------- ----- ------ - --- --------- ------ --------- --------- -- - --------------------- - -------- -- ------- -- -------------- --------- -- - --------------------- - ----- -- ------- --- ----- --- - --- -------------- ------------- --------- ----- -- - ----- ------- ----- -- - ---------- - ------------------------ ----------------------------------- ------------------------------- - ---------- --- ------------------------- --------------------------------- ----- ------------ ----- ---- ---
总结
在本文中,我们学习了如何在 Deno 中使用 TypeScript 创建路由。这里我们使用了 oak
库来实现路由和中间件,还提供了一个完整的示例代码。在未来的开发中,您可以使用这些知识来构建您的应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6470b498968c7c53b0ed10bb