使用 Deno 构建一个简单的电子商务网站

介绍

Deno 是一个由 Ryan Dahl 创建的运行时环境,用于在 JavaScript 和 TypeScript 上构建可扩展的网络应用程序。它是 Node.js 的替代品,通常被称为“安全 Node.js”或“下一代 Node.js”。

在本文中,我们将使用 Deno 构建一个简单的电子商务网站。我们将使用 Deno 发布服务器以及一些流行的 Deno 模块来实现所需的功能。我们还将展示如何在 Deno 中编写服务端渲染的 HTML 模板。

本文的目的是深入探讨 Deno 和如何在 Web 开发中使用它。我们将为你提供一些示例代码和指导,让你能够开始构建电子商务网站。

步骤

步骤 1 - 创建项目文件夹

首先,我们需要创建一个项目文件夹。在命令行中输入以下命令:

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

步骤 2 - 初始化项目

在项目文件夹内,在命令行中输入以下命令以初始化项目:

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

这个命令将创建一个名为 main.ts 的文件,它是我们主要的入口点。

步骤 3 - 安装依赖

我们将需要使用一些依赖项来构建我们的电子商务网站。我们将使用以下命令安装它们:

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

我们将使用以下依赖项:

  • denon:用于监视文件更改并自动重启应用程序。
  • denodb:用于数据库操作。
  • djwt:用于生成 JSON Web Tokens(JWT)。

步骤 4 - 编写服务器代码

main.ts 文件中,我们将编写服务器代码。以下是我们的代码:

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

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

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

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

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

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

以下是我们的代码所做的事情:

  • 导入 Oak 模块以创建服务器。
  • 创建服务器实例。
  • 添加一个中间件函数来记录每个请求的响应时间。
  • 添加一个中间件函数来计算每个请求处理的时间。
  • 将路由添加到应用程序中。
  • 启动服务器。

步骤 5 - 创建路由

routes.ts 文件中,我们将定义路由。以下是我们的代码:

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

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

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

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

以下是我们的代码所做的事情:

  • 导入 Oak 模块以创建路由。
  • 在路由实例上定义了两个路由:/api/v1/products/api/v1/products/:id
  • 将这些路由暴露出去,以便在 main.ts 文件中使用。

步骤 6 - 创建控制器

controllers/products.ts 文件中,我们将编写处理请求的代码。以下是我们的代码:

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

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

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

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

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

我们在这个文件中定义了两个处理函数:getProductsgetProductById。我们还创建了一个内存中的数组来保存商品。

以下是我们的代码所做的事情:

  • 导入 Product 模型。
  • 定义所需的商品。
  • 创建 getProducts 方法,返回产品列表与{ success: true }
  • 创建 getProductById 方法,用于获取特定产品。如果找到产品,则返回该产品与{ success: true }。否则,将响应状态设置为404,并返回 { success: false, message: 'Product not found' }

步骤 7 - 测试 API

在命令行中输入以下命令:

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

然后,用浏览器打开 http://localhost:8000/api/v1/productshttp://localhost:8000/api/v1/products/1

你应该会看到返回的 JSON 数据。

结论

在本文中,我们使用 Deno 构建了一个简单的电子商务网站。我们探索了如何在 Deno 中使用 Oak 和 DenoDB 来构建 Web 应用程序。

使用 Deno,我们可以更快地开发网络应用程序,因为它减少了对第三方模块的依赖。

除了我们在这里展示的功能之外,我们还可以添加其他功能,如用户认证和支付处理。

如果你想深入了解 Deno,可以查看 Deno 的官方文档。如果你有任何问题或建议,请在评论区中与我们分享。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67088bd8d91dce0dc8723bf2