Deno 是一个类似于 Node.js 的 JavaScript/TypeScript 运行时环境。它在安全性、性能、可维护性等方面有一些优势。因此,它可以用来编写 REST API。在本文中,我们将介绍如何使用 Deno 来编写 REST API。
安装 Deno
Deno 可以在 Windows、Linux、MacOS 等平台上运行。我们可以从 Deno 的官方网站下载可执行文件。也可以使用包管理器安装 Deno。
安装之后,我们可以在终端中输入以下命令来检查 Deno 是否安装成功:
deno --version
创建 REST API 项目
我们可以使用 Deno 提供的标准库来编写 REST API。Deno 标准库包括许多有用的模块,例如 http
、fs
、path
等。以下是一个简单的 REST API 项目的目录结构:
-- -------------------- ---- ------- - --- ---- --- ---------- --- ------ --- ----------- - --- -------- --- ----------- --- --------- --- ------ - --- -------- --- ----- --- ---------
在这个项目中,我们有三个文件夹:controllers、database 和 routes。在 controllers 文件夹中,我们将编写控制器来处理 REST API 的请求。在 database 文件夹中,我们将定义数据库的连接。在 routes 文件夹中,我们将定义 REST API 的路由。utils 文件夹中含有一些的通用工具函数。.env
文件则存储了一些私密信息(如数据库密码等)。
现在,我们可以开始逐步地实现这个 REST API。
连接数据库
我们可以使用 MongoDB 作为我们的数据库。在 database.ts 文件中,我们可以添加以下代码来连接 MongoDB 数据库:
-- -------------------- ---- ------- ------ - ----------- - ---- ----------------------------------- ------ ------------------------------------- ----- ------ - --- -------------- ----- --------------------------------------------- ----- -- - --------------------------------------------- ------ ------- ---
我们使用 MongoDB 官方提供的 MongoClient
类来连接 MongoDB 数据库。我们从 .env
文件中读取数据库 URI 和数据库名称。最后,我们将数据库实例导出,以便其他模块可以使用它。
实现控制器
在 controllers 文件夹中,我们将实现我们的控制器。控制器是处理 REST API 请求的核心组件。
例如,我们在 users.ts 文件中可以实现一个处理用户请求的控制器:
-- -------------------- ---- ------- ------ - -------------- ------ - ---- --------------------------------- ------ ----- ----------- - ----- ----- -------------- -- - --- - ------------------- - ---------- ----------------- - ---- --- ------- - ----- ------- - ------------------- - --------------------------- ----------------- - ---------- ---- -------- - -- ------ ----- ----------- - ----- ----- -------------- -- - --- - ----- ------ - -------------- ------------------- - ---------- ----------------- - ---- ---- -- --- ----------- - ----- ------- - ------------------- - --------------------------- ----------------- - ---------- ---- -------- - -- ------ ----- ---------- - ----- ----- -------------- -- - --- - ----- - ----- - - ----- ------------------- ------------------- - ---------- ----------------- - ------ - ----- ------- - ------------------- - --------------------------- ----------------- - ---------- ---- -------- - -- ------ ----- ---------- - ----- ----- -------------- -- - --- - ----- ------ - -------------- ----- - ----- - - ----- ------------------- ------------------- - ---------- ----------------- - ------- ---- -- --- ---------- ---------- - ----- ------- - ------------------- - --------------------------- ----------------- - ---------- ---- -------- - -- ------ ----- ---------- - ----- ----- -------------- -- - --- - ----- ------ - -------------- ------------------- - ---------- ----------------- - ------- ---- -- --- ----------- - ----- ------- - ------------------- - --------------------------- ----------------- - ---------- ---- -------- - --
我们定义了五个处理 REST API 请求的函数。它们返回一个 Promise 对象,该对象可以异步地响应请求。例如,getAllUsers
控制器返回所有用户的列表。
在这些函数中,我们使用了 Oak 这个框架的 RouterContext
和 Status
类型。
实现路由
在 routes/users.ts
文件中,我们将实现路由处理。路由是定义 REST API 的 URL 路径的地方。
-- -------------------- ---- ------- ------ - ------ - ---- --------------------------------- ------ - ------------ ----------- ------------ ----------- ----------- - ---- -------------------------- ----- ------ - --- -------- ------- --------------- --- --------------- ------------- ------------------ ------------- ---------------- ------------ ------------------ ------------ --------------------- ------------ ------ ------- -------
在这个文件中,我们创建了一个名为 router
的对象来定义路由。这个对象使用了 Oak 的 Router
类。我们在前缀字符串"/api/v1/users"中定义 REST API 的基础路径。然后,我们使用 router.GET
,router.POST
,router.PUT
和 router.DELETE
函数来定义 REST API 的 HTTP 方法和 URL。每个方法处理定义的相应请求的控制器函数。
启动 REST API
最后,我们将所有这些模块集成在一起并启动 REST API。在 app.ts
文件中,我们可以编写以下代码:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ------ ----------- ---- -------------------- ------ - ----------- -------------- -------- ----- - ---- ---------------------------------- ------ ------------------------------------- ------ -- ---- ---------------- ------ ------ ---- -------------------- -- ----------------------- - ------------------------ - ----- --- - --- -------------- ----- ------- - --------------------- ----- ---- - ------- - --------------- - ----- ------------- ----- ----- -- - ----- ------- ----- -- - -------------------------------------------- ---------------------------------- ------------------ - -------- --- ------------- ----- ----- -- - ----- ----- - ----------- ----- ------- ----- -- - ---------- - ------ ------------------------------------------- ----------- --- ------------------------------ -------------------------------------- ------------------------------ -- ------- --------- ---- -- -- - ------------ ---------- -- -------- - ---------- - -------------------- -- ---------------------- -- --- ----- ------------ ---- ---
在这个文件中,我们创建了一个名为 app
的对象来创建服务器。我们还通过 usersRouter
引入了路由定义。我们还添加了记录请求时间的中间件。最后,我们将我们的应用程序绑定到端口并启动它。
结论
在这篇文章中,我们探讨了如何使用 Deno 来编写 REST API。我们了解了如何些优雅使用 Deno。我们展示了如何创建控制器、连接数据库以及创建路由等。我们还编写了一个完整的应用程序来集成我们所有的组件。
Deno 是一个优秀的 JavaScript/TypeScript 运行时环境。它为我们提供了在安全性、性能、可维护性等方面的保证,使其成为开发 REST API 的理想选择。愿这篇文章对你的 Deno/REST API 开发旅程有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676cf40182fcee791c623830