介绍
Deno 是一个由 Ryan Dahl 创建的运行时环境,用于在 JavaScript 和 TypeScript 上构建可扩展的网络应用程序。它是 Node.js 的替代品,通常被称为“安全 Node.js”或“下一代 Node.js”。
在本文中,我们将使用 Deno 构建一个简单的电子商务网站。我们将使用 Deno 发布服务器以及一些流行的 Deno 模块来实现所需的功能。我们还将展示如何在 Deno 中编写服务端渲染的 HTML 模板。
本文的目的是深入探讨 Deno 和如何在 Web 开发中使用它。我们将为你提供一些示例代码和指导,让你能够开始构建电子商务网站。
步骤
步骤 1 - 创建项目文件夹
首先,我们需要创建一个项目文件夹。在命令行中输入以下命令:
mkdir e-commerce cd e-commerce
步骤 2 - 初始化项目
在项目文件夹内,在命令行中输入以下命令以初始化项目:
deno init --allow-net --allow-read --allow-env
这个命令将创建一个名为 main.ts
的文件,它是我们主要的入口点。
步骤 3 - 安装依赖
我们将需要使用一些依赖项来构建我们的电子商务网站。我们将使用以下命令安装它们:
deno install --unstable --allow-read --allow-write --allow-plugin --allow-net https://deno.land/x/denon/denon.ts
deno install --allow-net --allow-write --unstable https://deno.land/x/denodb/cli.ts
deno install -Af --unstable https://deno.land/x/djwt/mod.ts
我们将使用以下依赖项:
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
文件中,我们将编写处理请求的代码。以下是我们的代码:
-- -------------------- ---- ------- ------ - ------- - ---- ----------------------- ----- --------- --------- - - - --- ---- ----- -------- --- ------------ ----- -- ------- --- ------ ----- -- - --- ---- ----- -------- --- ------------ ----- -- ------- --- ------ ----- - -- ------ ----- ----------- - ----- -- -------- -- - --------- --- -- -- - ------------- - - -------- ----- ----- -------- -- -- ------ ----- -------------- - ----- -- ------- -------- -- - ------- - --- ------ -- --------- --- -- -- - ----- ------- - --------------- -- ---- --- ----------- -- --------- - ------------- - - -------- ----- ----- ------- -- ------- - --------------- - ---- ------------- - - -------- ------ -------- -------- --- ------ -- --
我们在这个文件中定义了两个处理函数:getProducts
和 getProductById
。我们还创建了一个内存中的数组来保存商品。
以下是我们的代码所做的事情:
- 导入
Product
模型。 - 定义所需的商品。
- 创建
getProducts
方法,返回产品列表与{ success: true }
。 - 创建
getProductById
方法,用于获取特定产品。如果找到产品,则返回该产品与{ success: true }
。否则,将响应状态设置为404
,并返回{ success: false, message: 'Product not found' }
。
步骤 7 - 测试 API
在命令行中输入以下命令:
deno run --allow-net ./main.ts
然后,用浏览器打开 http://localhost:8000/api/v1/products
和 http://localhost:8000/api/v1/products/1
。
你应该会看到返回的 JSON 数据。
结论
在本文中,我们使用 Deno 构建了一个简单的电子商务网站。我们探索了如何在 Deno 中使用 Oak 和 DenoDB 来构建 Web 应用程序。
使用 Deno,我们可以更快地开发网络应用程序,因为它减少了对第三方模块的依赖。
除了我们在这里展示的功能之外,我们还可以添加其他功能,如用户认证和支付处理。
如果你想深入了解 Deno,可以查看 Deno 的官方文档。如果你有任何问题或建议,请在评论区中与我们分享。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67088bd8d91dce0dc8723bf2