前言
目前,Node.js 是最广泛使用的服务器端 JavaScript 运行环境之一。然而,近年来,Deno 也崭露头角。Deno 和 Node.js 相比,有一些明显的优点,例如更好的安全性、更好的模块化设计、更好的 TypeScript 支持等。在本文中,我们将探讨如何使用 Deno 搭建一个基本的 Restful API 服务器并提供最佳实践。
安装 Deno
首先,我们需要安装 Deno。具体安装步骤可以参考官方文档。在安装完毕后,我们可以通过以下命令来检查 Deno 是否安装成功:
deno --version
如果命令能够正常输出 Deno 的版本号,则说明安装成功。
创建项目
接下来,我们将创建一个新的项目。我们可以将项目的根目录命名为 "deno-restful-api"。可以通过以下命令来创建一个新的项目:
mkdir deno-restful-api cd deno-restful-api
编写代码
接下来,我们将在项目中编写代码。我们将使用 Oak 框架来编写我们的 Restful API 服务器。Oak 框架是一个简单且易于使用的 Web 框架,具有类似于 Express.js 的 API 设计。
第一步:安装 Oak
在项目的根目录下,我们可以通过以下命令来安装 Oak:
deno install --allow-net --allow-read https://deno.land/x/oak/mod.ts
第二步:创建一个基本的 Restful API 路由
现在我们可以开始编写代码了。我们将创建一个名为 "app.ts" 的文件来实现我们的 Restful API 服务器。首先,我们需要导入 Oak 模块和 Application 类:
import { Application } from "https://deno.land/x/oak/mod.ts";
然后,我们可以创建一个名为 "app" 的新应用程序实例:
const app = new Application();
现在,在我们创建的应用程序实例上,我们可以使用 .use()
方法来添加中间件。在这个例子中,我们将添加一个中间件函数来处理所有的请求:
app.use(async (ctx) => { ctx.response.body = "Hello, world!"; });
我们可以看到,上面的代码只是简单地返回一条消息。接下来,我们将定义多个路由来处理不同的 HTTP 动作和 URL。
第三步:定义路由
在本教程的下一部分中,我们将创建一个用于管理用户的基本 Restful API。我们将涵盖HTTP 请求的各个方面,并展示实际的代码示例来说明如何在 Deno 中实现。
在 "app.ts" 文件的顶部,我们需要定义一个名为 "users" 的数组来保存我们的示例用户数据:
-- -------------------- ---- ------- --------- ---- - --- ------- ----- ------- ------ ------- - --- ------ ------ - - - --- ---- ----- -------- ------ -------------------- -- - --- ---- ----- ------ ------ ------------------ -- --
1. GET 路由
首先,我们需要定义一个 GET 路由,以提供所有的用户数据。可以通过以下代码实现:
app.use(async (ctx) => { if (ctx.request.url.pathname === "/users") { ctx.response.body = { users, }; } });
2. POST 路由
接下来,我们需要添加一个 POST 路由来添加一个新的用户。可以通过以下代码实现:
-- -------------------- ---- ------- ------------- ----- -- - -- ------------------------- --- -------- -- ------------------ --- ------- - ----- ---- - ----- ------------------- ----- - ----- ----- - - ----- ----------- ----- -- - --- ---------------------------- ------------ --- ----- ----- --- ------------------- - ---- ----------------- - - ----- - --- ----- ----- -- -- - ---
3. PUT 路由
接下来,我们需要添加一个 PUT 路由,以更新现有的用户数据。可以通过以下代码实现:
-- -------------------- ---- ------- ------------- ----- -- - -- - ------------------------------------------------------------- -- ------------------ --- ----- - - ----- ------ - --------------------------------------- ----- ---- - ----- ------------------- ----- - ----- ----- - - ----- ----------- ----- --------- - ---------------------- -- ------- --- -------- -- ---------- - --- - ---------------- - - -------------------- ----- ------ -- ------------------- - ---- ----------------- - - ----- ----------------- -- - ---- - ------------------- - ---- - - ---
4. DELETE 路由
最后,我们需要添加一个 DELETE 路由,以删除现有的用户数据。可以通过以下代码实现:
-- -------------------- ---- ------- ------------- ----- -- - -- - ------------------------------------------------------------- -- ------------------ --- -------- - - ----- ------ - --------------------------------------- ----- --------- - ---------------------- -- ------- --- -------- -- ---------- - --- - ----- ---- - ----------------- ----- - ------------------- -- ------- --- -------- ------------------- - ---- ----------------- - - ----- -- - ---- - ------------------- - ---- - - ---
第四步:启动应用程序
现在,我们已经创建了所有必需的路由。接下来,我们需要启动我们的应用程序。我们需要添加以下代码到 "app.ts" 文件的末尾:
await app.listen({ port: 8000 }); console.log("Server listening on port 8000");
运行应用程序
最后,我们可以运行我们的应用程序。在终端中,我们可以通过以下命令启动 Deno:
deno run --allow-net --allow-read app.ts
此时,我们的应用程序正在监听在端口8000上。我们可以打开浏览器,并访问localhost:8000来查看结果。
总结
在本文中,我们已经学习了如何使用Denooak框架来构建Restful API服务器。我们也看到了如何处理HTTP请求,以及如何在Denoupp中编写路由,以及如何处理以这些路由发出的HTTP请求。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6541f8757d4982a6ebb9b0db