快速入门指南:使用 Node.js 和 Express 创建 RESTful API

RESTful API 是现代 Web 应用程序开发中不可缺少的部分。Node.js 和 Express 是构建 RESTful API 的强大工具,让前端开发更加轻松。在本指南中,我们将详细介绍如何使用 Node.js 和 Express 创建 RESTful API,并提供示例代码。

基本概念

在开始介绍如何创建 RESTful API 之前,我们需要先了解一些基本概念。

REST

REST(Representational State Transfer)是一种 Web 应用程序架构风格,它基于 HTTP 协议。RESTful API 是基于 REST 架构风格的 API,它可以使用 HTTP 请求实现对资源的增删改查操作。

HTTP 请求方法

HTTP(Hypertext Transfer Protocol)是用于 Web 通信的协议,其中有多种请求方法。常用的请求方法有:

  • GET:获取资源
  • POST:创建资源
  • PUT:更新资源
  • DELETE:删除资源

HTTP 状态码

HTTP 协议的响应会包括一个状态码,表示服务器对请求的处理结果。常见的状态码有:

  • 200 OK:请求成功
  • 201 Created:资源创建成功
  • 400 Bad Request:请求有误
  • 404 Not Found:资源不存在
  • 500 Internal Server Error:服务器错误

使用 Node.js 和 Express 创建 RESTful API

现在,我们可以开始介绍如何使用 Node.js 和 Express 创建 RESTful API。

准备工作

在开始创建 RESTful API 之前,需要确保已经安装了 Node.js 和 Express。如果没有安装,可以前往官方网站下载并安装。

创建一个新项目,在项目目录下创建一个新的文件夹 routes,用于存储路由相关的代码。

然后,在项目根目录下创建一个新文件 index.js,用于启动应用程序。

创建路由

routes 文件夹下创建一个名为 api.js 的文件,用于存储 RESTful API 相关的路由。在 api.js 中,可以按照以下方式创建路由:

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

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

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

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

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

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

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

在上面的代码中,我们使用 express.Router() 创建一个新的路由。接下来,分别创建了获取所有资源、获取指定 ID 的资源、创建资源、更新指定 ID 的资源和删除指定 ID 的资源的路由。

实现路由逻辑

创建完路由之后,需要实现它们的逻辑。以下是一些示例代码:

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

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

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

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

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

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

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

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

在上面的代码中,我们假设我们有一个数组 resources 存储了资源。在获取所有资源和获取指定 ID 的资源的路由中,我们可以使用 res.send() 将返回的 JSON 数据发送给客户端。如果资源不存在,我们可以使用 res.status()res.send() 发送合适的 HTTP 响应。

在创建和更新资源的路由中,我们从请求体中读取数据,并将新的资源添加到数组中或更新现有资源。

最后,在删除指定 ID 的资源的路由中,我们可以根据 ID 在数组中查找资源,然后使用 Array.prototype.splice() 删除它。

启动应用程序

完成上述步骤后,我们需要在 index.js 中启动应用程序并将路由添加到应用程序中。以下是一个示例代码:

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

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

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

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

在上面的代码中,我们首先使用 const app = express() 创建一个新的应用程序。然后,使用 express.json() 中间件将请求体解析为 JSON。

接下来,我们使用 app.use()/api 路径映射到 apiRouter 中间件。最后,使用 app.listen() 启动应用程序并将其绑定到指定的端口。

测试 API

现在,我们已经完成了创建 RESTful API 的所有步骤。我们可以使用 Postman、curl 或其他工具测试 API。

例如,使用 GET 请求访问 http://localhost:3000/api 可以获取所有资源。使用 POST 请求访问 http://localhost:3000/api 可以创建一个新的资源。使用 PUT 请求访问 http://localhost:3000/api/:id 可以更新指定 ID 的资源。使用 DELETE 请求访问 http://localhost:3000/api/:id 可以删除指定 ID 的资源。

总结

在本指南中,我们介绍了使用 Node.js 和 Express 创建 RESTful API 的基本概念和步骤。我们了解了 REST、HTTP 请求方法和状态码。然后,我们按照步骤创建了路由、实现了路由逻辑,并在应用程序中启动了路由。最后,我们测试了 API。这些步骤将帮助您创建稳健的 Web 应用程序并提供丰富的 API。

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


猜你喜欢

  • Socket.io 的强制断开连接问题解决方法

    问题描述 在使用 Socket.io 进行前端与后端的实时通信时,有时需要在服务器端手动断开与客户端的连接,例如在用户退出登录、连接超时等情况下。但是,通过调用 socket.disconnect()...

    1 年前
  • 解决 Enzyme 渲染组件 <Provider> 时的问题

    在进行 React 前端开发时,我们经常需要使用到 Redux 来管理应用程序的状态。而在开发过程中,为了能够准确地测试组件的行为,我们需要使用 Enzyme 来确保各个组件正确渲染和更新。

    1 年前
  • 如何解决 Deno 在 Windows 系统下编译出错的问题?

    前言 Deno 是一个非常火热的全新的 JavaScript 和 TypeScript 运行时,它提供了类似 Node.js 的 API 以及类似浏览器的 Web API。

    1 年前
  • Node.js 脚本因 UTF-8 BOM 头而引起的问题及解决方案

    问题描述 在使用 Node.js 编写脚本时,如果使用了 UTF-8 编码并在编码文件开头添加了 BOM 头,可能会引起一些问题。例如,使用 fs 模块读取文件时会读取到 BOM 头,导致字符串无法正...

    1 年前
  • 利用 Vue.js + vant-ui 构建基于 Vue 的单页应用

    Vue.js 是一款流行的 JavaScript 前端框架,它具有轻量级、易用性和高可定制性等特点,能够快速构建现代化的 Web 应用。Vant-UI 是基于 Vue.js 的一套移动端 UI 组件库...

    1 年前
  • 在 PWA 应用中使用 LocalForage

    PWA(Progressive Web App)是一种新型的 Web 应用程序模型,可以在桌面端和移动端上使用,具有类似于原生应用的快速响应和离线功能。本文介绍了 PWA 应用中使用 LocalFor...

    1 年前
  • RxJS 中的 Debounce

    RxJS 中的 Debounce 在 Web 开发中,我们经常需要处理一些用户输入或者事件触发的情况,例如搜索框的联想、下拉框的展示、滚动加载等等。这些场景下,我们往往需要防止用户短时间多次触发事件,...

    1 年前
  • CSS Grid 和 Flexbox:如何在响应式设计中进行选择

    在现代的 Web 开发中,设计师和开发者需要考虑如何创建适应不同设备和屏幕大小的网页。在此过程中,使用正确的布局工具变得非常重要。 在本文中,我们将详细讨论两种目前流行的 CSS 布局技术:CSS G...

    1 年前
  • 使用 Node.js 和 Express 设计 RESTful API

    RESTful API是Web应用程序开发中使用广泛的设计模式,可以让开发者建立起可扩展、高效、灵活的服务。使用Node.js和Express可以轻松地设计和开发RESTful API。

    1 年前
  • 如何使用 CSS Reset 重置多个元素样式?

    当我们在进行前端开发时,常常会发现在不同浏览器中,相同元素的样式可能存在差异。这些差异可能导致我们的页面展示不符预期,影响用户体验。而 CSS Reset(CSS 重置)则是一种处理这种问题的方式。

    1 年前
  • 如何使用 SASS 来提高前端开发效率?

    为了提高前端开发效率和代码的可读性和可维护性,开发人员需要使用一些辅助工具和技术。其中一种非常流行的技术是 SASS(Syntactically Awesome Style Sheets)。

    1 年前
  • React Native 中使用 NativeBase 替代 AntD 的思路

    React Native 是一种非常流行的跨平台移动应用开发框架,采用了很多现代前端技术,让开发者们可以用熟悉的技术来轻松创建高质量的移动应用。而 AntD 是一款广受欢迎的 UI 组件库,可以提供现...

    1 年前
  • Sequelize 中避免 SQL 注入的方法

    在开发前端应用的过程中,使用 Sequelize 这个 node.js ORM 库来访问数据库是一个常见的选择。然而,在编写 Sequelize 代码时,我们需要注意如何避免 SQL 注入攻击。

    1 年前
  • Express.js 中如何使用 WebSocket

    Express.js 中如何使用 WebSocket WebSocket 是一种在 Web 应用程序中实时双向通信的技术,使客户端和服务器能够在任一时刻交换消息,无需刷新页面。

    1 年前
  • ES6 中的可选链操作符使用方法

    随着前端技术的不断升级,许多新的特性被加入到了 JavaScript 的语言中。ES6 中的可选链操作符是其中之一。可选链操作符 ?. 可以在对象的属性调用中进行安全的导航,当属性不存在时不会抛出异常...

    1 年前
  • 使用 Tailwind CSS 实现代码高亮

    前言 前端开发中,代码高亮是一项十分重要的功能。在编写代码的时候,高亮功能不仅能够提高代码的可读性,还能够帮助开发者快速定位问题。目前市面上有很多实现代码高亮的插件和库,其中 Tailwind CSS...

    1 年前
  • DOM 操作的幸福时代:ES8 async/await 和 jQuery Deferred 到底谁更加实用?

    在前端开发中,DOM 操作是很常见的任务。无论你是要修改页面元素的样式或者是增删节点,都需要对 DOM 进行操作。然而,由于 DOM 操作比较耗时,而 JavaScript 是单线程执行的,因此如果不...

    1 年前
  • 如何处理 ES7 数组 includes 方法的 bug

    在 JavaScript 中,数组是一种重要的数据类型。在日常开发中,我们经常需要对数组进行操作,比如查找特定的元素。在 ES7 中引入的 includes 方法能够方便地判断一个数组是否包含某个元素...

    1 年前
  • 如何在 PM2 中配置多个实例

    什么是 PM2 PM2 (Process Manager 2) 是一个流行的 Node.js 进程管理器。它能够管理和监控你的 Node.js 应用程序,提供了日志记录,负载均衡,进程守护和自动重启等...

    1 年前
  • 在 Node 项目中使用 Jest 测试特定的代码块

    在现代的 web 开发中,测试是不可避免的。在测试中,Jest 是一个流行的 JavaScript 测试框架。它易于使用,并且可以用于测试各种类型的代码,包括 Node 项目中的代码块。

    1 年前

相关推荐

    暂无文章