如何使用 express.js 创建 RESTful API

RESTful API 是现代 Web 开发中最流行的 API 设计规范之一。它使得客户端能够通过 HTTP 请求来访问和修改服务器上的资源。Express.js 是 Node.js 上面最受欢迎的 web 框架之一。在本篇学习笔记中,我们将介绍如何使用 Express.js 创建 RESTful API。

什么是 RESTful API

RESTful API 是一种架构风格,它定义了一组规则来设计 Web 应用程序的 API 接口。这些规则包括用 URL 来表示资源,使用 HTTP 动词(如 GET、POST、PUT、DELETE 等)来操作资源,以及使用 JSON 或者 XML 来传输数据。

RESTful API 基于客户端-服务器的架构风格,它可以适配多种客户端和服务端环境,运行在 HTTP 协议之上,具有良好的可扩展性、可维护性、可测试性、易于理解和文档化等特性。

安装 Express.js

在开始之前,我们需要先安装 Node.js 和 npm。假设您已经安装好它们,我们可以打开终端并运行以下命令来创建一个新的 Node.js 项目,并在其中安装 Express.js:

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

创建简单的 RESTful API

我们将开始创建一个简单的 RESTful API,该 API 有以下端点:

Endpoint HTTP 方法 描述
/ GET 返回一条简单的欢迎消息
/users GET 返回所有用户的列表
/users POST 创建一个新的用户
/users/:id GET 返回指定 ID 的用户
/users/:id PUT 更新一个用户
/users/:id DELETE 删除一个用户

首先,我们需要在项目根目录下创建一个名为 index.js 的文件,并将以下代码添加到文件中:

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

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

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

这段代码创建了一个 Express 应用程序,并为其添加了一个简单的路由。当访问 / 端点时,应用程序将返回一条简单的欢迎消息。

接下来,我们需要创建一个用于保存用户的空数组。我们可以将以下代码添加到 index.js 文件中:

--- ----- - --

现在,我们可以添加 /users 端点的路由和处理函数。将以下代码添加到 index.js 文件的底部:

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

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

这段代码将创建一个 /users 端点,并将 GETPOST 请求映射到相应的路由处理函数。其中,GET 请求会返回一个包含所有用户的 JSON 对象,而 POST 请求则会从请求体中读取用户信息,将其存储到用户数组中,并在创建成功后返回 JSON 格式的用户信息。

现在,我们已经实现了 //users 端点。接下来,我们将实现其余的 /users/:id 端点,以便能够获取、更新和删除指定用户的信息。

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

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

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

这段代码将创建 /users/:id 端点,并将 GETPUTDELETE 请求映射到相应的路由处理函数中。其中,GET 请求会获取指定 ID 的用户信息,PUT 请求会更新指定 ID 的用户信息,DELETE 请求会删除指定 ID 的用户信息。

运行 RESTful API

现在,我们已经创建好了一个简单的 RESTful API,可以通过以下命令来运行它:

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

它会在终端输出 服务已经在端口3000上启动! 的信息,表示 API 已经在 localhost:3000 上运行了。

你可以在浏览器或者 Postman 中访问以下 URL 来测试 API:

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

总结

在本文中,我们学习了如何使用 Express.js 创建 RESTful API。我们首先了解了 RESTful API 的基本概念和设计规范,接着学习了如何使用 Express.js 创建简单的 RESTful API。我们使用了 GETPOSTPUTDELETE 请求,以及 json() 中间件来处理 JSON 数据。通过这篇笔记,我们希望能够帮助初学者更好地理解和学习 RESTful API 的设计和开发。如果你还有任何问题或建议,请在评论区留言。

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


猜你喜欢

  • AngularJS 中遇到的表单验证问题及解决方法

    在使用 AngularJS 进行表单验证时,可能会遇到一些问题,特别是在表单复杂且数据流复杂的情况下。本文将介绍几种常见的问题和解决方法,并提供示例代码,以帮助读者更好地理解和掌握 AngularJS...

    1 年前
  • Node.js 中的 Mocha 测试用例:使用异步聚合 TestCases

    Mocha 是 Node.js 中最流行的测试框架之一,它支持异步测试和各种测试报告格式,而且还可以被扩展。然而,在实际工作中,可能会遇到多个异步测试用例需要在一个回调中并行执行的情况,这样就需要使用...

    1 年前
  • Cypress 测试框架中基于 Page Object 设计模式的实践经验分享

    前言 Cypress 是一个开源的 JavaScript 测试框架,它具有简单易用、快速稳定等特点,因此越来越多的开发者开始使用它进行前端自动化测试。本文将分享基于 Page Object 设计模式在...

    1 年前
  • Deno 中如何处理 WebSocket 连接失效?

    WebSocket 是一种在 Web 应用程序中实现双向通信的网络技术,它可以实时地在客户端和服务器之间传递数据。在 Deno 中使用 WebSocket,我们可以方便地通过 WebSocket AP...

    1 年前
  • Headless CMS 中 API 接口调用的一些注意事项和注意点

    Headless CMS(无头 CMS)是一个新型 CMS 系统,它提供了一种新的方式来管理内容和数据,可以让开发人员和设计师更加自由和灵活地控制和展示数据。它将内容储存于数据库中,并且通过 API ...

    1 年前
  • GraphQL 中类型定义时的常见错误及其解决方法

    前言 GraphQL 是一种 API 查询语言,可以用于描述数据的结构和关系。为了能够正常使用 GraphQL 及其相关工具,我们需要定义类型。类型定义是 GraphQL 中的重要组成部分,也是开发过...

    1 年前
  • CSS Flexbox 实战:实现导航栏的自适应布局

    CSS Flexbox 是一个非常流行的布局方式,它可以帮助我们轻松实现各种复杂的布局效果。本文将重点介绍如何使用 CSS Flexbox 实现导航栏的自适应布局,让页面在不同尺寸的屏幕上都能够保持良...

    1 年前
  • 解决在 ECMAScript 2015 中默认参数的问题

    在 ECMAScript 2015 中,我们可以使用默认参数来给函数的参数设置默认值。如果我们不传递某个参数,那么这个参数的值就会取默认值。这肯定是一个很方便的特性,但是在一些特殊的情况下,我们可能需...

    1 年前
  • ES7 Generator 函数进阶使用方法

    Generator 函数是 ES6 新增的一项特性,它可以让我们用更简洁的方式来编写协作的异步代码,从而有效地消除回调地狱,提高代码可读性和可维护性。在 ES7 中,Generator 函数又有了一些...

    1 年前
  • SequelizeORM:如何访问关联数据

    SequelizeORM:如何访问关联数据 随着 Web 应用程序越来越复杂,我们需要处理更多的数据。而当数据变得复杂时,我们通常需要一种机制来处理关联数据。Sequelize ORM 是 Nodej...

    1 年前
  • ES8 的 Symbol.asyncIterator 异步迭代器使用详解

    ES8 的 Symbol.asyncIterator 异步迭代器使用详解 在异步编程中,迭代器(Iterator)是一个很常见的概念。在ES6中,我们可以通过普通的Iterator来迭代同步的数据结构...

    1 年前
  • Webpack 构建 TypeScript 项目的方案

    Webpack 是一个现代化的前端构建工具,它的强大之处在于可以让开发者将不同的代码资源整合在一起,并打包成最终的文件。而 TypeScript 是一种类型安全且具有代码提示能力的脚本语言,它可以让我...

    1 年前
  • Material Design 中如何设置 AppbarLayout 样式?

    AppbarLayout 是 Material Design 中的一个重要组件,通常用于呈现应用程序的顶部栏。通过正确设置 AppbarLayout 样式,可以为应用程序增加视觉吸引力和用户体验的同时...

    1 年前
  • ESLint 在 AngularJS 项目中的使用指南

    ESLint 是一个 JavaScript 代码静态分析工具,它可以帮助我们发现代码中的一些潜在问题和错误,并且规范团队开发的代码风格。在 AngularJS 项目中集成 ESLint,可以有效地提高...

    1 年前
  • Jest 测试中处理异步代码错误的实用技巧

    在前端开发中,我们需要对 JavaScript 代码进行测试。为了进行自动化测试,我们通常使用 Jest 工具来编写测试代码。在测试过程中,我们经常会遇到异步代码的情况,例如延迟加载数据或处理服务器响...

    1 年前
  • 解决 Custom Elements 中 Shadow DOM 的样式覆盖问题

    首先让我们了解 Custom Elements 和 Shadow DOM 是什么 Custom Elements Custom Elements 是 Web Component 的一部分,是一种自定义...

    1 年前
  • 利用 Chai.js 和 Sinon.js 测试 Node.js 应用程序

    在前端开发中,测试是一个必不可少的环节。Chai.js 是一个优秀的断言库,可以帮助开发者编写清晰、易读的测试用例;Sinon.js 则是一个强大的测试辅助工具,可以模拟各种行为,创建测试 stub ...

    1 年前
  • 从 ECMAScript 6 到 2020,了解 JavaScript 发展历程及扩展性

    随着 Web 技术的快速发展,JavaScript 成为了前端开发的重要组成部分。作为一种动态脚本语言,JavaScript 在不断地发展和演化。在这篇文章中,我们将介绍 JavaScript 的发展...

    1 年前
  • Next.js 中如何实现响应式设计?

    在移动端设备数量不断增加的今天,响应式设计已然成为了现代网站开发中不可或缺的一部分。Next.js 作为一款流行的 React 框架,也提供了多种方案来实现响应式设计。

    1 年前
  • Socket.io 如何实现基于 Socket 编程的实时游戏

    Socket.io 是一个基于 Node.js 的实时应用程序框架,在前端开发中,Socket.io 可以帮助我们实现基于 Socket 编程的实时游戏效果。本文将详细介绍如何利用 Socket.io...

    1 年前

相关推荐

    暂无文章