基于 Deno 的框架设计

阅读时长 7 分钟读完

简介

Deno 是一个由 Node.js 创始人 Ryan Dahl 发布的一种运行时,它支持 TypeScript 和 JavaScript。Deno 通过安全性、开箱即用的内置工具和高效性来吸引开发者的关注。在 Deno 中,就不需要像 Node.js 那样使用包管理器,也没有与版本相关的问题率,这使得 Deno 更加适合用在生产环境。

在这篇文章中,我们将谈论如何使用 Deno 来搭建一个框架来简化前端开发任务,并采用最佳实践让框架更加优化。

组件设计与实现

Deno 文件的结构

首先,我们需要建立一个基本的 Deno 应用程序,该应用程序将包含文件结构如下:

在这个基本应用程序中,我们将需要实现以下主要组件:

Controllers

控制器负责接收请求,并响应相应的结果。控制器会从请求中获取数据、处理它并返回一个响应给客户端。

我们来看一下一个简单的控制器实例:

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

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

Routes

路由只是一个映射请求 URL 到特定控制器的表。当一个 URL 被请求,路由负责将请求分发到对应的控制器上,并返回相应的结果。

我们来看一下一个简单的路由实例:

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

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

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

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

Middlewares

中间件与 Express 中的中间件十分相似,这些函数拦截客户端请求并在控制器接收请求之前对请求进行处理。

我们来看一下一个简单的中间件实例:

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

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

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

代码实践

由于 Oak 是一个基于中间件的开发框架,这就意味着我们可以利用它来对 HTTP 请求进行拦截处理。我们现在要做的事情就是编写带有中间件和控制器的简单路由。

控制器

下面是一个控制器,它接受一个 HTTP POST 请求,并将用户名和密码保存到一个全局哈希表中:

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

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

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

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

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

中间件

下面是一个简单的中间件,打印每个请求:

路由

/login 接受一个 POST 请求,把用户的用户名和密码传递给 LoginController 类的 login 方法。

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

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

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

启动服务器

最后,我们需要在服务器上启动这些路由,这是非常简单的。我们把各个组件连接起来,创建一个服务器。

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

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

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

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

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

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

总结

作为未来的 Deno 技术的一部分,框架设计使用需要注意安全性、高效性和可靠性。使用 Oak 和 TypeScript 开发框架的过程中,编写了控制器、中间件和路由的代码,最后把所有这些组件连接起来,创建了一个工作的 Deno 应用程序。Denon 可以帮助我们更轻松地启动我们的应用程序,可以实时监测代码的变化以及重新启动服务。我们在构建框架的时候,可以结合 Denon 来编写开发和调试工作,让开发和执行的流程更加流畅。

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

纠错
反馈