前言
Deno 是一个基于 V8 引擎的 JavaScript/TypeScript 运行时,由 Node.js 的创始人 Ryan Dahl 开发。相比于 Node.js,Deno 更加安全、更加简洁,而且自带 TypeScript 支持。
本文将介绍如何在 Deno 中实现一个简单的 CRUD RESTful API,希望能为初学者提供一些指导。
环境搭建
首先,需要安装 Deno 运行时。可以到官网(https://deno.land/)下载安装包,也可以使用包管理器(如 Homebrew)安装。
安装完成后,可以使用以下命令检查是否安装成功:
---- ---------
接着,需要安装一个简单的 HTTP 服务器,这里我们使用 Oak。Oak 是一个基于中间件的 Web 框架,类似于 Node.js 中的 Express。
可以使用以下命令安装 Oak:
---- ------- ----------- ------------ ------------------------------
实现 CRUD RESTful API
接下来,我们将通过实现一个简单的 Todo 应用程序来学习如何在 Deno 中实现 CRUD RESTful API。
创建数据模型
首先,我们需要创建一个数据模型来存储 Todo 数据。在本例中,我们只需要存储 Todo 的标题和完成状态。
--------- ---- - --- ------- ------ ------- ---------- -------- -
创建路由
接下来,我们需要创建路由来处理 HTTP 请求。在 Oak 中,路由是由中间件组成的。
------ - ------ - ---- --------------------------------- ----- ------ - --- --------- -------------------- ------------- ------------------------ ------------- --------------------- ------------ ------------------------ ------------ --------------------------- ------------ ------ ------- -------
我们定义了 5 个路由:
- GET /todos:获取所有 Todo
- GET /todos/:id:根据 ID 获取 Todo
- POST /todos:创建新的 Todo
- PUT /todos/:id:更新指定的 Todo
- DELETE /todos/:id:删除指定的 Todo
实现路由处理函数
接下来,我们需要实现路由处理函数来处理 HTTP 请求。在本例中,我们将数据存储在内存中,而不是使用数据库。
--- ------ ------ - --- -------- ---------------- ---- - ----------------- - ------ - -------- ---------------- ---- - ----- -- - -------------- ----- ---- - ----------------- -- ------- --- ---- -- ------- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- - ---- - ----------------- - ----- - - ----- -------- --------------- ---- - ----- ---- - ----- ------------------- ----- - ----- - - ----------- ----- ----- ---- - - --- ------------------------------------ --- ------ ---------- ------ -- ----------------- ----------------- - ----- ------------------- - ---- - ----- -------- --------------- ---- - ----- -- - -------------- ----- ---- - ----------------- -- ------- --- ---- -- ------- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- - ---- - ----- ---- - ----- ------------------- ----- - ------ --------- - - ----------- ---------- - ----- -- ----------- -------------- - --------- -- --------------- ----------------- - ----- - - -------- --------------- ---- - ----- -- - -------------- ----- ----- - ---------------------- -- ------- --- ---- -- ------ --- --- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- - ---- - ------------------- --- ------------------- - ---- - -
在 getAllTodos 函数中,我们将所有的 Todo 返回给客户端。
在 getTodoById 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们将 Todo 返回给客户端;否则,返回 404 错误。
在 createTodo 函数中,我们从 HTTP 请求中获取 Todo 的标题,并为其生成一个随机的 ID。然后,我们将 Todo 存储在内存中,并将其返回给客户端。
在 updateTodo 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们从 HTTP 请求中获取 Todo 的标题和完成状态,并更新 Todo。然后,我们将更新后的 Todo 返回给客户端;否则,返回 404 错误。
在 deleteTodo 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们从内存中删除 Todo;否则,返回 404 错误。注意,我们在删除 Todo 后返回 204 状态码,表示请求成功但没有响应内容。
运行应用程序
最后,我们需要运行应用程序。可以使用以下命令:
---- --- ----------- ------
在浏览器中访问 http://localhost:8000/todos 即可查看所有 Todo。可以使用 Postman 或类似工具来测试其他路由。
总结
本文介绍了如何在 Deno 中实现一个简单的 CRUD RESTful API。通过本例,我们学习了如何使用 Oak 创建路由、如何实现路由处理函数以及如何存储数据。希望本文能对初学者提供一些指导。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65fb9866d10417a22272c8bb