Node.js 中开发 RESTful API 的完整教程

· 约 8 分钟读完

介绍

RESTful API 是现代互联网应用程序中不可或缺的一部分。在前端开发中,经常需要使用 RESTful API 来获取或更新数据,有时你可能需要自己创建一个 RESTful API 来支持你的应用程序。在本篇文章中,我们将学习如何使用 Node.js 来开发 RESTful API。

准备工作

在开始本教程之前,需要先确保已经安装了以下软件:

  • Node.js
  • NPM

你可以在 Node.js 官网 上下载最新版本的 Node.js,同时 NPM 也会随着 Node.js 的安装而一同安装。

创建项目

首先,我们需要创建一个新项目并初始化。

  1. 在终端中进入待创建的目录,并执行以下命令:

    这些命令将创建一个名为 my-project 的新项目,并通过 npm init 命令自动生成一个 package.json 文件。

  2. 安装所需的依赖项:

    我们使用 Express 框架、Morgan 日志中间件、Body Parser 请求体解析中间件和 CORS 中间件来快速构建我们的 RESTful API。

创建路由

接下来我们需要编写路由,来响应来自客户端的请求。在 Express 中,创建一个路由很简单,只需要在一个模块中定义路由规则,然后将该模块导出即可。

在项目根目录下创建一个名为 routes.js 的文件,然后编写以下代码:

这个路由将会响应来自客户端的根路由请求,并发送一个包含 “Welcome to my API!” 的响应。现在我们需要告诉 Express 在访问根路由时使用该路由。

在项目根目录下创建一个名为 server.js 的文件,然后编写以下代码:

在这个文件中,我们首先导入所需的依赖项。然后我们创建一个 Express 应用程序和一个名为 routes 的路由。我们还使用 Morgan 中间件来记录来自客户端的请求,用 Body Parser 中间件来解析 JSON 格式的请求体,并使用 CORS 中间件来处理来自跨域请求的预请求。最后,我们将路由应用到根路由上,并将监听器设置在指定的端口上。

现在我们启动该应用程序并访问根路由。可以使用以下命令启动该应用程序:

用浏览器或 Postman 工具访问 http://localhost:3000,就会看到一个包含 “Welcome to my API!” 的响应。

访问数据库

大多数 RESTful API 都需要与数据库进行交互,以便存储和检索数据。在 Node.js 中,我们可以使用一种称为 MongoDB 的 NoSQL 数据库。

首先,我们需要在 MongoDB 上创建一个数据库和一个集合。可以使用 MongoDB Atlas 免费版或本地安装 MongoDB。

在项目根目录下创建一个名为 models.js 的文件,并编写以下代码:

这个模块使用 Mongoose 库来连接 MongoDB,并导出一个名为 User 的模型,该模型定义了一个将存储在名为 users 的集合中的用户。我们可以使用该模型来执行数据库操作,例如查询、更新或删除用户。

创建 CRUD API

我们已经创建了一个路由,现在需要使用该路由来创建一个 RESTful API,以便客户端可以使用 HTTP 方法来执行 CRUD(创建、读取、更新、删除)操作。

以下是我们将要编写的路由和方法:

  • GET /api/users:获取所有用户。
  • GET /api/users/:id:获取指定用户。
  • POST /api/users:创建新用户。
  • PUT /api/users/:id:更新指定用户。
  • DELETE /api/users/:id:删除指定用户。

在项目根目录下创建一个名为 routes.js 的文件,并编写以下代码:

在这个路由中,我们导入名为 User 的模型,并创建了五个路由方法。这些方法使用 MongoDB 调用模型中的方法来执行 CRUD 操作,然后发送响应到客户端。

测试

现在,我们已经完成了整个 RESTful API 的编写,我们需要测试我们的 API 以确保它能够按预期工作。

我们可以使用 Postman 工具来测试我们的 API。使用以下 URL 和 JSON 格式的请求体创建新用户:

使用以下 URL 和 JSON 格式的请求体来更新用户名为 John Doe 的用户:

使用以下 URL 来获取所有用户:

使用以下 URL 来获取指定 ID 的单个用户:

使用以下 URL 来删除指定 ID 的用户:

结语

在本教程中,我们学习了如何使用 Node.js 和 Express 框架来创建 RESTful API。我们还学习了如何使用 MongoDB 和 Mongoose 库来与数据库进行交互,并执行 CRUD 操作。使用这些知识,我们可以编写完整的应用程序并与客户端进行交互。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67cfbb5fe46428fe9eb9efd0