如何在 Deno 中构建 RESTful API?

介绍

Deno 是一个新型的 JavaScript 运行时环境,由著名 Node.js 创始人 Ryan Dahl 开发。相比于 Node.js,Deno 具有更安全,更高效,更简洁的特性,其中最受前端开发者欢迎的是其内置了 ES 模块支持和 TypeScript 支持。在本文中,我们将介绍如何使用 Deno 构建 RESTful API,为前端开发提供有用的指导。

步骤

1. 安装 Deno

前往 Deno 官网 https://deno.land,下载并安装最新版本的 Deno 运行时环境。

2. 构建项目目录结构

创建一个名为 "rest-api" 的项目目录,进入该目录后,创建以下目录结构:

--------
--- ------
--- -----------
-   --- --------
--- ----------
-   --- -----------------
--- ------
-   --- -------------
--- ------
-   --- --------------
--- --------
-   --- ----------------
--- -----
-   --- -----------
-   --- -----------
-   -   --- -------------
-   --- ------
-   -   --- -------------
-   --- --------
-       --- -------------
--- -------------

3. 安装依赖

在终端中进入项目目录,执行以下命令安装需要的依赖:

---- ------- ----------- ------------ ---------- ----------------------------------
---- ------- ----------- ------------ ---------- -------------------------------

4. 配置 TypeScript

在项目根目录下创建 "tsconfig.json" 文件,并添加以下配置:

-
  ------------------ -
    ------------------- -------
    ------------------ -----
    ---------- -----
    ---------------- -----
    --------- ---------
    --------- ---------
    --------- -----------
    ------------ -----
    --------- ----
  --
  ---------- -----------
  ---------- ------------ -------------------
-

5. 实现功能

下面,我们将按照以下步骤,逐个实现用户身份认证、获取用户信息、创建用户、更新用户和删除用户这几个功能。

认证

在 "app.ts" 文件中添加以下代码:

------ - ----------- - ---- ---------------------------------
------ - ------- - ---- ----------------------------------
------ - ------ - ---- --------------------------
------ - -------------- - ---- -----------------------------------

----- --- - --- --------------

-------------------
------------------------

-------------------------
---------------------------------

------------------- --------- -- ------------------------

----- ------------ ----- ---- ---

AuthMiddleware 验证用户的 Token 是否有效。当用户访问被保护的路由时,该中间件会先进行身份认证,只有认证通过才会继续访问相应的路由。

获取用户信息

在 "controllers/users.ts" 文件中添加以下代码:

------ - ------- - ---- ---------------------------------
------ - ----------- - ---- -------------------------------

------ ----- -------------- -
  ------ ----- ------------ -------- -
    ----- ------ - ----------------------
    --- -
      ----- ---- - ----- --------------------------------
      ------------------- - ----
      ----------------- - -----
    - ----- ------- -
      ------------------- - ----
      ----------------- - - -------- ------------- --
    -
  -
-

在 "routes/users.route.ts" 文件中添加以下代码:

------ - ------ - ---- ---------------------------------
------ - -------------- - ---- --------------------------

------ ----- ------ - --- -------- ------- ------ ---

------------------------ ------------------------

创建用户

在 "controllers/users.ts" 文件中添加以下代码:

------ - ------- - ---- ---------------------------------
------ - ----------- - ---- -------------------------------
------ - ---- - ---- --------------------------

------ ----- -------------- -
  ------ ----- --------------- -------- -
    ----- ---- - ----- ------------------------ -- -----
    --- -
      ----- ------- - ----- -----------------------------
      ------------------- - ----
      ----------------- - --------
    - ----- ------- -
      ------------------- - ----
      ----------------- - - -------- ------------- --
    -
  -
-

在 "routes/users.route.ts" 文件中添加以下代码:

------ - ------ - ---- ---------------------------------
------ - -------------- - ---- --------------------------

------ ----- ------ - --- -------- ------- ------ ---

--------------------- ---------------------------

更新用户

在 "controllers/users.ts" 文件中添加以下代码:

------ - ------- - ---- ---------------------------------
------ - ----------- - ---- -------------------------------
------ - ---- - ---- --------------------------

------ ----- -------------- -
  ------ ----- --------------- -------- -
    ----- ------ - ----------------------
    ----- ---- - ----- ------------------------ -- -----
    --- -
      ----- ----------- - ----- ------------------------------ ------
      ------------------- - ----
      ----------------- - ------------
    - ----- ------- -
      ------------------- - ----
      ----------------- - - -------- ------------- --
    -
  -
-

在 "routes/users.route.ts" 文件中添加以下代码:

------ - ------ - ---- ---------------------------------
------ - -------------- - ---- --------------------------

------ ----- ------ - --- -------- ------- ------ ---

------------------------ ---------------------------

删除用户

在 "controllers/users.ts" 文件中添加以下代码:

------ - ------- - ---- ---------------------------------
------ - ----------- - ---- -------------------------------

------ ----- -------------- -
  ------ ----- --------------- -------- -
    ----- ------ - ----------------------
    --- -
      ----- -------------------------------
      ------------------- - ----
    - ----- ------- -
      ------------------- - ----
      ----------------- - - -------- ------------- --
    -
  -
-

在 "routes/users.route.ts" 文件中添加以下代码:

------ - ------ - ---- ---------------------------------
------ - -------------- - ---- --------------------------

------ ----- ------ - --- -------- ------- ------ ---

--------------------------- ---------------------------

到此,我们已经完成了一个简单的 Deno RESTful API。通过运行以下命令,启动该应用:

----- -----

结论

Deno 是一个有趣的 JavaScript 运行时环境,它比 Node.js 具有更多新的特性和优势,为前端开发提供了新的选择。在本文中,我们介绍了如何使用 Deno 构建 RESTful API,其中包括用户身份认证、获取用户信息、创建用户、更新用户和删除用户这几个功能。对于那些正在学习 Deno 或者想要使用 Deno 开发 RESTful API 的前端开发者来说,本文提供了有用的指导。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/66f3e7def40ec5a964e5b859


猜你喜欢

  • 如何在 Deno 中使用 WebSocket?

    WebSocket 是 HTML5 开始出现的协议,它在客户端和服务器之间建立全双工的通信连接,使得实时通信成为可能。在 Deno 中,我们可以通过 std/ws 模块来使用 WebSocket。

    2 个月前
  • GraphQL 入门指南:基本概念与学习资源

    教程目标 本篇 GraphQL 入门指南将为前端开发人员介绍 GraphQL 的基本概念、语法、学习资源以及应用场景,并提供一些示例代码,以帮助读者快速入门。 什么是 GraphQL? GraphQL...

    2 个月前
  • 详解 babel 原理,自定义 babel 插件及其开发流程

    前言 随着前端技术的不断发展,JavaScript 语言的应用范围也越来越广泛,从最初的简单页面交互到如今的前端框架、工具库等等,JavaScript 越来越被世界所认可。

    2 个月前
  • ESLint:为什么让我把分号分开?

    ESLint:为什么让我把分号分开? ESLint 是一个非常流行的 JavaScript 代码检查工具,可以检查出代码中可能存在的问题,并给出修复建议。其中有一个比较特别的规则,就是在代码结尾处强制...

    2 个月前
  • 基于 Vue.js 的多页面应用开发 —— 从 SPA 到 MPA

    引言 随着互联网的快速发展,Web 前端变得越来越重要。前段时间,随着 SPA(单页应用)的兴起,我们也开始经常听到 SPA 这个词。单页应用通过异步加载数据,实现快速响应和无感刷新,受到了众多开发者...

    2 个月前
  • 在 Node.js 中使用 TypeScript 进行开发的技巧

    在前端开发中,使用 TypeScript 已经越来越普遍,因为它可以提供更好的类型检查和更高的代码可维护性。在 Node.js 中使用 TypeScript 也很流行,我们可以通过 TypeScrip...

    2 个月前
  • React Native 如何实现导航切换

    React Native 是一种前端开发技术,它使用 JavaScript 和 React 库来构建原生移动应用程序。由于 React Native 具有可复用性强、效率高、开发周期短等众多优点,因此...

    2 个月前
  • 响应式设计中如何针对不同终端调整字号

    什么是响应式设计 响应式设计(Responsive Design)是一种能够在不同的设备上以视觉上完美的方式展现的网站,而不是一种只能在计算机端口展开的网站。它的缩放可以根据所用设备的屏幕宽高比例进行...

    2 个月前
  • 如何在 Angular 中使用 RxJS(附实例)

    RxJS 是一个强大的异步编程库,它可以为 Angular 应用程序提供很多方便的功能。 在这篇文章中,我们将学习如何在 Angular 应用程序中使用 RxJS,并演示一些实用的案例。

    2 个月前
  • Enzyme 中的七个最常见错误

    Enzyme 中的七个最常见错误 Enzyme 是一个流行的 JavaScript 测试工具,在前端开发中起着重要的作用。但是,在实践中,我们也经常会遇到一些问题和错误,导致测试的维护和调试变得困难。

    2 个月前
  • CSS Flexbox 解决 align-items 与 justify-content 的使用问题

    在前端设计中,我们常常需要控制网页中的元素排布。在元素排布过程中,align-items 与 justify-content 是两项非常重要的 CSS 属性。它们可以让我们很方便地控制元素的位置和对齐...

    2 个月前
  • 如何在 Node.js 中使用 MongoDB 驱动程序

    如何在 Node.js 中使用 MongoDB 驱动程序 在现代Web应用程序的开发中,数据库是必不可少的组成部分。MongoDB 是一种免费的 NoSQL 数据库,非常适合处理大量数据和高并发的请求...

    2 个月前
  • 如何使用 Cypress 测试 React Hooks

    介绍 Cypress 是一个现代化的前端自动化测试工具,它提供了丰富的 API 和插件,能够方便地测试前端应用的各个方面。React Hooks 是 React 16.8 构建组件的新方式,它使得组件...

    2 个月前
  • Custom Elements 组件库的最佳实践

    介绍 随着前端组件化的普及,我们需要更加智能、可靠和可重用的组件库,以便于加快业务的开发速度,同时保证应用的稳定性、可维护性和可扩展性。Custom Elements 是一种颜值高、性能佳、功能强大的...

    2 个月前
  • 神奇的 HTML5 Reset 方案在 CSS Reset 中的应用

    HTML5 Reset 是一个流行的前端技巧,用来解决 HTML5 标签在不同浏览器之间的差异,使页面开发更简单和一致。然而,这个方案的妙处并不局限于 HTML5,它同样适用于 CSS Reset,可...

    2 个月前
  • 如何为 GraphQL 执行性能测试

    随着 GraphQL 在前端开发中的应用越来越广泛,检测 GraphQL 查询的性能变得比以往更加重要。确保您的应用程序能够在高负载的情况下稳定运行是至关重要的。在本文中,我们将讨论如何执行 Grap...

    2 个月前
  • 在VS Code中使用ESLint进行JavaScript代码检查

    作为前端开发人员,我们经常会遇到代码质量问题,如未定义变量、拼写错误、格式化不一致等。这些问题可能会导致代码错误,并最终影响我们的产品质量。为了避免这些问题,我们通常使用代码检查工具,其中一个最受欢迎...

    2 个月前
  • SSE 服务器推送消息中断的原因分析及解决方案

    前言 SSE(Server-Sent Events)服务器推送技术是一种实时通信方式,可以让服务器将数据推送到客户端,而无需客户端向服务器发送请求。这种技术在前端开发中很常见,比如实时聊天、在线会议等...

    2 个月前
  • 如何在 Headless CMS 中管理多语言内容

    如何在 Headless CMS 中管理多语言内容 在多语言网站上,如何良好地管理多语言内容是一个非常重要的问题。在 Headless CMS 中,特别是在使用 JavaScript 技术栈构建的网站...

    2 个月前
  • 如何优化 Docker 镜像的构建速度

    如何优化 Docker 镜像的构建速度 Docker 镜像是开发和部署应用程序时必不可少的工具。然而,在构建较大的 Docker 镜像时可能会遇到较长的构建时间。这对于持续集成和交付(CI/CD)过程...

    2 个月前

相关推荐

    暂无文章