Deno 是一个开源的 JavaScript/TypeScript 运行时,它提供了一个安全的运行环境,并且具有更好的开发体验和更好的性能。如果您想在 Deno 中构建快速、可靠的 API,这篇文章将会为您指导如何做到。
第一步:安装 Deno
首先,您需要安装 Deno。您可以从 Deno 的官方网站(https://deno.land/)下载安装包或使用包管理器进行安装。安装完成后,在命令行中运行以下命令,查看 Deno 是否已经安装成功:
deno --version
如果您看到了版本号,那么就表示 Deno 已经成功安装了。
第二步:创建 API
在开始之前,我们需要确定一下我们想要构建的 API。这里我将构建一个简单的 TodoList API。
首先,我们需要创建一个新的文件夹,并在其中创建一个名为 server.ts
的文件。在 server.ts
中,我们需要导入一些必要的模块,并编写一些基本的代码。
-- -------------------- ---- ------- ------ - ------------ ------ - ---- --------------------------------- ----- --- - --- -------------- ----- ------ - --- --------- --------------- ----- -- - ----------------- - ------- -------- --- ------------------------- --------------------------------- ----- ------------ ----- ---- ---
在这段代码中,我们使用了 Oak 模块,它是一个用于构建 Web 应用程序的模块。我们首先创建了一个新的 Application
实例,它表示我们的 Web 应用程序。然后,我们创建了一个名为 router
的新路由器,并使用 router.get()
方法定义了一个 GET 路由,该路由将返回一个简单的 “Hello, world!” 响应。最后,我们使用 app.use()
方法将路由器挂载到我们的应用程序中,然后调用 app.listen()
方法来启动我们的应用程序,监听 8000 端口的请求。
现在,我们已经成功地创建了一个简单的 Web 服务器,并且可以通过访问 http://localhost:8000
来查看是否一切正常。
第三步:连接数据库
现在我们需要将 TodoList 存储在一个数据库中。在此处,我们将使用 MongoDB 作为我们的数据库,您需要先安装 MongoDB 并启动 MongoDB 服务器。
在继续之前,您还需要安装 Mongo 驱动程序,可以使用以下命令:
deno install --allow-net --allow-read https://deno.land/x/mongo/mod.ts
有了数据库和驱动程序,我们可以使用以下代码连接到 MongoDB 数据库:
import { MongoClient } from "https://deno.land/x/mongo/mod.ts"; const client = new MongoClient(); await client.connect("mongodb://localhost:27017"); const db = client.database("todos");
在这里,我们首先导入 MongoClient
类,并创建了一个新的 client
实例。然后,我们调用 client.connect()
方法来连接到 MongoDB 服务器。接下来,我们创建了一个名为 todos
的新数据库。
第四步:定义模型
接下来,我们需要定义我们的 Todo 模型。我们将创建一个名为 Todo
的 TypeScript 接口。
interface Todo { _id: { $oid: string }; title: string; completed: boolean; }
在这里,我们定义了一个包含 _id
、title
和 completed
字段的接口。其中,_id
是 MongoDB 中自动生成的唯一 ID。
接下来,我们需要创建一个名为 todos.ts
的新文件,并在其中定义一些 CRUD 操作,以获取、创建、更新和删除 Todo。
-- -------------------- ---- ------- ------ - ------------- - ---- --------------------------------- ------ - ---- - ---- ----------------------------------- ------ -- ---- ---------- ----- ----- - ----------------------------- ------ ----- ----------- - ----- ----- -------------- -- - ----- -------- - ----- ------------- ----------------- - --------- -- ------ ----- ---------- - ----- ----- -------------- -- - ----- - ------ - ----- - - - ----- ------------------- ----- ------- - - ------ ---------- ------ -- ------------------- - ---- ----------------- - ----- ------------------------- -- ------ ----- ---------- - ----- ----- -------------- -- - ----- - -- - - ----------- ----- - ------ - ------ --------- - - - ----- ------------------- ----- ------ - ----- ---------------- - ---- --- ----------------- -- - ----- - ------ --------- - - -- -- --------------------- --- -- - ------------------- - ---- - ---- - ------------------- - ---- - -- ------ ----- ---------- - ----- ----- -------------- -- - ----- - -- - - ----------- ----- ------- - ----- ----------------- ---- --- ----------------- --- -- --------- - ------------------- - ---- - ---- - ------------------- - ---- - --
在这里,我们首先导入 RouterContext
类和 Bson
模块。接下来,我们从 db.ts
导入了我们之前创建的 todos
集合,并导出了一些不同的操作,包括获取所有 Todo、创建新的 Todo、更新 Todo 以及删除 Todo。
第五步:更新路由
现在我们已经成功定义了模型和模型操作,我们需要将其添加到我们的路由中。在 server.ts
文件中,我们需要修改路由定义,以使其包含我们的新操作。
import { getAllTodos, createTodo, updateTodo, deleteTodo } from "./todos.ts"; const router = new Router(); router.get("/todos", getAllTodos); router.post("/todos", createTodo); router.put("/todos/:id", updateTodo); router.delete("/todos/:id", deleteTodo);
在这里,我们导入了我们之前定义的 CRUD 操作,并使用 router.get()
、router.post()
、router.put()
和 router.delete()
方法来定义新的路由,以便访问我们的 API。
第六步:运行服务器
最后,我们可以使用以下命令启动服务器并运行我们的 API:
deno run --allow-net --allow-read server.ts
这将启动我们的应用程序,并监听 8000 端口。现在,我们可以使用 Postman 或其他 HTTP 工具来测试我们的 API。
总结
在本文中,我们学习了如何在 Deno 中构建快速、可靠的 API。我们了解了如何使用 Oak 模块创建 Web 服务器,如何连接 MongoDB 数据库,如何定义模型以存储我们的数据,并使用它执行 CRUD 操作。最后,我们将我们的模型操作添加到我们的路由中,并成功地构建了一个完整的 TodoList API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6469cb96968c7c53b099cc0c