使用 Node.js 和 Express 构建 RESTful API - 基础篇

1. 什么是 RESTful API?

REST 指的是 Representational State Transfer,可以翻译为“表现层状态转化”。它是一种设计风格,用于构建网络应用程序。

RESTful API 是符合 REST 设计风格的 Web API。它基于 HTTP 协议,使用 HTTP 动词(GET、POST、PUT、DELETE 等)对资源进行 CRUD 操作。RESTful API 的特点是统一的 URL、标准的 HTTP 方法和返回格式,以及可重用的可缓存响应。

2. Node.js 和 Express

Node.js 是一种服务器端 JavaScript 运行环境,它使 JavaScript 能够在服务器端运行。它基于事件驱动和非阻塞 IO 模型,可以实现高性能的网络应用程序。

Express 是一个基于 Node.js 平台的 Web 框架。它提供了一组强大的功能,包括路由、中间件、模板引擎和许多其他功能,可以帮助我们快速构建 Web 应用程序。

3. 构建 RESTful API 的基本步骤

3.1 安装和初始化 Express

首先,我们需要安装 Node.js 和 Express。

在命令行中输入以下命令来安装 Express:

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

创建一个新的文件夹,并进入该文件夹。在文件夹中执行以下命令来初始化我们的项目:

--- ----

这将创建一个 package.json 文件,其中包含项目的元数据和依赖项。

3.2 创建路由

Next, we need to create routes for our RESTful API. Routes are responsible for handling HTTP requests and sending responses. To create routes, we can use the Express Router.

在项目的根目录下创建一个名为 index.js 的文件,并输入以下代码:

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

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

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

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

此代码创建了一个基本的 Express 应用程序,并使用 Router 创建了一个简单的路由。该路由将 GET 请求映射到根路径,并返回“Hello World!”消息。

3.3 运行服务器

运行以下命令以启动服务器:

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

现在,我们可以在浏览器中访问 http://localhost:3000/api/ 并看到“Hello World!”消息的输出。这表明我们已经成功创建了一个基本的 RESTful API。

3.4 处理 HTTP 请求

接下来,我们需要处理 HTTP 请求。在 RESTful API 中,我们使用 HTTP 方法(例如 GET、POST、PUT 和 DELETE)来执行各种操作。为了处理 HTTP 请求,我们需要编写路由处理程序。

让我们添加一些路由来处理 GET 和 POST 请求。在 index.js 文件中添加以下代码:

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

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

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

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

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

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

此代码添加了两个新路由:/users 和 /users(POST)。GET 请求将返回用户数组,POST 请求将添加新用户。

3.5 处理 HTTP 参数

RESTful API 经常需要处理查询参数、请求正文和路由参数。Express 可以帮助我们处理这些参数。

让我们添加一些路由处理程序,以处理查询参数和路由参数。在 index.js 文件中添加以下代码:

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

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

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

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

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

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

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

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

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

此代码添加了新的 GET 路由(/users/:id),可以从路由参数中获取用户 ID。它还将查询参数用于筛选用户列表。

3.6 处理 HTTP 响应

最后,我们需要处理 HTTP 响应。在 RESTful API 中,我们通常使用标准的 HTTP 状态代码和消息正文来响应客户端请求。

我们可以使用 Express 提供的 res(响应)对象来设置状态代码、响应头和消息正文。

让我们添加一些路由处理程序,以演示如何处理 HTTP 响应。在 index.js 文件中添加以下代码:

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

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

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

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

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

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

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

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

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

此代码添加了一个 POST 路由,以演示如何处理无效请求(在此示例中为缺少名称)。它还使用 HTTP 状态代码和消息正文来响应请求。

注意,我们还使用了 Express 提供的 express.json() 中间件来解析 POST 请求正文。

4. 总结

使用 Node.js 和 Express 可以快速构建 RESTful API,以下是构建基本 RESTful API 的步骤:

  1. 安装和初始化 Express。
  2. 创建路由。
  3. 处理 HTTP 请求。
  4. 处理 HTTP 参数。
  5. 处理 HTTP 响应。

在本文中,我们演示了如何使用 Express 在几行代码中构建一个简单的 RESTful API。Node.js 和 Express 提供了大量的功能和工具,使我们可以轻松地构建强大和高性能的 Web 应用程序。

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


猜你喜欢

  • Koa.js 中数据库连接的正确方式

    在 Koa.js 中使用数据库连接是开发中非常常见的操作。然而,连接数据库并不是一件容易的事情,很多有经验的程序员也会遇到一些问题。本文将会分享 Koa.js 中连接数据库的正确方式,包括详细的步骤和...

    1 年前
  • 如何在 ECMAScript 2017 中正确使用 generator 函数

    在 ECMAScript 2015 (ES6)中,引入了 generator 函数。Generator函数是一种特殊的函数,可以被中断执行,随后又从中断的地方继续执行。

    1 年前
  • PM2 如何在生产环境中配置正确的日志记录

    在前端开发中,日志记录是非常重要的。它可以帮助我们了解应用程序的运行情况,并且快速定位问题。PM2 是一个非常流行的 Node.js 进程管理工具,它可以方便地管理 Node.js 应用程序的启动、监...

    1 年前
  • Material Design Staggered Grid View 的实现

    随着移动设备的普及,越来越多的人开始将工作和生活放在手机和平板电脑上。因此,用户界面设计变得尤为重要,特别是为了提高用户体验。在移动应用程序中,呈现数据的漂亮方式是必不可少的。

    1 年前
  • Redis 的数据安全问题及解决方法

    背景 Redis 是一种快速、可扩展且开源的内存数据库,拥有广泛的开发者和用户基础,并且具有高效率、灵活性和可靠性的特点,在互联网公司中被广泛应用于缓存、消息队列、实时数据分析和计数器等业务场景。

    1 年前
  • Hapi 框架集成 Sequelize 实现 MySQL 数据库操作教程

    随着前端Web应用的多样化和商业化,越来越多的前端开发者需要接触数据库编程以满足业务需求。Hapi 框架是一套非常灵活、可扩展性强的 Node.js Web 应用框架,而 Sequelize 是一套基...

    1 年前
  • Tailwind CSS - 如何实现定义全局 CSS 变量

    Tailwind CSS - 如何实现定义全局 CSS 变量 前言 随着前端项目越来越复杂,对于样式的管理和维护也变得越来越重要。尤其是当我们需要同时维护多个项目时,相同的样式往往需要在不同的项目中重...

    1 年前
  • Custom Elements 中如何绑定数据和事件

    Custom Elements 中如何绑定数据和事件 Custom Elements 是 Web Components 的一项核心技术,用于创建自定义的 HTML 元素,并为这些元素定义自己的行为和样...

    1 年前
  • 使用 Server-sent Events 和 Redis Pub/Sub 实时更新 Web 应用程序

    随着时代的发展,Web 应用程序的实时性越来越重要。传统的轮询方式已经不能满足开发者和用户的需求,因为它不仅消耗资源,而且更新速度有限。而 Server-sent Events 和 Redis Pub...

    1 年前
  • ESLint:如何规避 no-console 的限制?

    在前端开发的过程中,我们经常会使用 console 对象进行调试和检查程序运行状态。然而,使用 console 在大型项目中会产生一些问题,如将敏感信息错误地输出到控制台、将 console.log ...

    1 年前
  • Promise 中的错误堆栈如何进行调试

    前言 Promise 是现代前端开发中非常常见的异步处理方式,通过 Promise 可以更加优雅地解决回调地狱等问题。但是在使用 Promise 过程中,我们常常需要面对错误的处理和调试。

    1 年前
  • 如何优化 RESTful API 的性能和可扩展性

    RESTful API 是现代 Web 应用程序中最受欢迎的 API 类型之一。然而,随着 Web 应用程序越来越复杂,RESTful API 也需要更好的性能和可扩展性。

    1 年前
  • 使用 Mongoose 实现多人在线博弈游戏的经验分享

    在前端开发中,我们经常会涉及到实时在线游戏的开发,而多人在线博弈游戏无疑是其中的代表之一。在这篇文章中,我将分享我如何使用 Mongoose 来实现多人在线博弈游戏的经验,以及这个过程中所遇到的一些技...

    1 年前
  • 在 Serverless 应用程序中使用 SNS 进行消息传递

    概述 Serverless 应用程序是一种构建和运行完全托管的应用程序的方式,其中不需要关注服务器、操作系统和基础设施等细节。相比于传统的应用程序,Serverless 应用程序具有更低的运营成本和更...

    1 年前
  • Headless CMS API 设计规范

    随着前端技术的不断发展,越来越多的项目开始采用 Headless CMS(无头内容管理系统)。这种后端内容管理系统只提供 API 接口,不关注前端展示和交互效果,使得前端开发者可以更加专注于用户体验。

    1 年前
  • CSS Reset 解决不同浏览器的样式兼容问题

    在开发前端项目时,由于不同浏览器的样式表现不同,我们需要解决样式兼容问题。CSS Reset 是一个常用的解决方案,可以清除浏览器默认样式,统一页面样式。 什么是 CSS Reset? CSS Res...

    1 年前
  • Redux 工作原理与实现

    Redux 是一个开源的 JavaScript 状态容器,它可以管理应用程序的状态。它通过提供一种可预测的状态管理模式来解决应用程序中复杂的状态管理问题。Redux 被广泛应用于 React 和其他前...

    1 年前
  • Cypress 如何实现 API 接口测试?

    前言 随着互联网技术的发展,Web应用的接口不断增多,为了保证接口的质量和稳定性,自动化测试已成为企业开发的重要工作之一。Cypress作为当前最火爆的前端测试框架之一,除了支持端到端的自动化测试外,...

    1 年前
  • ES7 中的 Array.of 方法详解

    在 Javascript 中,数组是一种十分常用的数据结构。ES6 提供了一些非常方便的数组相关的方法,但是仍然存在一些场景下需要创建数组,同时也需要指定初始值的情况。

    1 年前
  • Sequelize 的多表查询详解

    前言 在 Web 开发过程中,经常需要对数据库进行查询和操作。Sequelize 是一个 Node.js 中的 ORM 框架,提供了一个简单易用的接口,方便我们进行数据库操作。

    1 年前

相关推荐

    暂无文章