使用 Deno 搭建 Blog 系统

阅读时长 8 分钟读完

Deno 是一个类似 Node.js 的 JavaScript 运行时环境,但更加安全和现代化。它由 Node.js 的创建者 Ryan Dahl 开发,并于 2020 年初发布,目前已经受到广泛关注和应用。本文介绍如何使用 Deno 搭建一个简单的 Blog 系统,包括博客文章的创建、展示和删除等功能,演示了如何使用 Deno 的 API 来实现一个完整的 Web 应用程序。

准备工作

使用 Deno 来开发 Web 应用程序需要准备以下工作:

  1. 安装 Deno:可以从 Deno 的官网下载对应系统的安装程序。

  2. 安装 VS Code 插件:可以搜索安装「Deno」插件,这里建议使用「Deno for Visual Studio Code」插件,它能提供更好的开发体验。

  3. 安装 Denon:Denon 是一个 Deno 的脚本管理器,它可以在开发过程中自动重启应用程序,提高开发效率。可以在终端中执行以下命令来安装 Denon:

创建项目

接下来,我们使用 Deno 创建一个新的 Web 应用程序。在命令行中执行以下命令:

然后,添加以下代码到 main.ts 文件中:

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

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

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

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

----- ------------ ----- ---- --
展开代码

这个程序使用 Oak,一个流行的 Deno Web 框架,创建了一个基本的 Web 服务器。首先,我们导入了 Oak 应用程序并创建了一个实例。然后,我们调用 app.use 方法来添加一个处理程序,它将 "Hello Deno!" 文本作为响应返回给客户端。最后,我们在控制台中打印出服务器正在运行的端口号,并使用 app.listen 方法来启动服务器并绑定到本地 8000 端口。

运行项目

在命令行中执行以下命令来运行应用程序:

这个命令将使用 Denon 启动我们的应用程序,并 Watch 我们的文件变化,所以当我们修改了我们的代码,应用程序会自动重启。

现在,可以在浏览器中访问 http://localhost:8000,在页面上应该看到 "Hello Deno!" 消息。

模拟数据库

在之前的步骤中,我们创建了一个简单的 Web 服务器来响应请求。现在,我们需要将其连接到一个存储系统,以便我们可以创建、显示和删除博客文章。在这个例子中,我们将使用文件系统来模拟数据库的行为。

首先,我们创建一个名为 db.ts 的文件,并添加以下代码:

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

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

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

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

------ ----- ---------- - ---- ------- -- -
  ----- - ------------------- -- ------- --- ---
-
展开代码

这个文件定义了一个类似数据库的模块,其中包含 getAll、addBlog 和 deleteBlog 等方法,用于获取、添加和删除博客文章。在这个例子中,我们使用了一个简单的对象数组作为存储系统,但在实际应用中,我们可能需要使用真正的数据库系统,如 MongoDB、PostgreSQL 等。

创建路由

现在,我们创建两个路由,一个用于获取所有的博客文章并返回一个 JSON 数组,另一个用于添加和删除博客文章。这里我们可以再次利用 Oak 框架的优势:

在 main.ts 中,添加以下代码:

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

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

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

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

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

------------------------
--------------------------------
展开代码

这个代码创建了三个路由:

  • GET /blogs 路由,它将调用 db.ts 中的 getAll 方法,然后返回所有博客文章的列表;
  • POST /blogs 路由,它将读取请求体中的 title 和 content 字段,并使用 db.ts 中的 addBlog 方法将新文章添加到数据库中;
  • DELETE /blogs/:id 路由,它将从请求 URL 中读取文章 ID 并调用 db.ts 中的 deleteBlog 方法将其从数据库中删除。

这样,我们的服务器就可以处理来自客户端的 GET、POST 和 DELETE 请求了。

创建前端页面

最后,我们创建一个静态 HTML 页面来向服务器发送请求,并在前端展示博客文章。创建一个名为 index.html 的文件,并添加以下内容:

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

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

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

      -----------
    ---------
  -------
-------
展开代码

这个文件使用了 JavaScript、HTML 和 CSS 来创建一个简单的 UI。它包含一个表单,用于提交新博客文章,以及一个用于展示博客文章的列表。它使用 fetch API 来向服务器发送 POST 和 DELETE 请求,并在前端页面上更新博客列表。我们还创建了一个名为 loadBlogs 的函数,它将使用 fetch API 来获取所有博客文章的列表,并将其展示在前端页面上。

运行应用

在命令行中执行以下命令以启动我们的应用程序:

在浏览器中访问 http://localhost:8000,你应该能够看到一个简单的博客系统,一个用于提交文章的表单和一个用于展示文章列表的区域。现在,你可以在表单中提交新的文章并删除现有的文章。这样,我们就成功地创建了一个基于 Deno 的 Blog 系统。

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

纠错
反馈

纠错反馈