REST(Representational State Transfer)是一个常用的用于创建 Web 服务的架构样式。现在,许多 Web 应用程序都使用 REST API 以实现各种功能,如建立用户帐户、创建订单等等。在本文中,我们将使用 Node.js 和 Express.js 创建 REST API 的最佳实践,以帮助你在创建 REST API 时更加高效和准确。
安装 Node.js 和 Express.js
使用 Node.js 和 Express.js 创建 REST API,要先安装这两个软件。你可以访问以下链接下载和安装它们。
创建一个 Express.js 项目
首先,为你的项目创建一个文件夹,并进入该文件夹。
mkdir my-project cd my-project
然后,运行以下命令来初始化你的项目。
npm init -y
这将创建一个
package.json
文件,其中包含了项目的元数据和依赖关系。接下来,运行以下命令来安装 Express.js。
npm install express
在你的项目根目录下创建一个
index.js
文件,这是你的项目入口点。touch index.js
使用你喜欢的编辑器打开
index.js
文件,并输入以下代码来创建 Express 应用程序。const express = require('express'); const app = express(); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server listening on port ${PORT}`); });
此代码创建了一个 Express 实例,并将其监听在默认端口 3000 上。你可以通过访问
http://localhost:3000
来验证它是否运行正常。
创建 REST API 端点
在创建 REST API 时,要定义一些 API 端点,以向客户端提供服务。在 Express.js 中,你可以使用 app.get()
、app.post()
、app.put()
和 app.delete()
等方法创建这些 REST API 端点。
以下示例是一个 REST API 端点示例代码,其中使用 app.get()
定义了一个 /hello
端点,当客户端请求此 URL 时,服务器将返回一个简单的 JSON 响应。
app.get('/hello', (req, res) => { res.json({ message: 'Hello, World!' }); });
在上面的代码块中,我们将 /hello
路径与 app.get()
方法绑定,以在服务器端处理客户端请求。req
和 res
分别表示 Express 的请求和响应对象。我们通过调用 res.json()
方法,将 JSON 响应发送给客户端。
添加中间件
中间件是一种在路由处理程序之前或之后执行的功能。在 Express.js 中,你可以使用 app.use()
方法来添加中间件。
以下示例添加了一个名为 body-parser
的中间件,该中间件能够解析来自客户端请求的 JSON 数据。
const bodyParser = require('body-parser'); app.use(bodyParser.json());
在上面的代码块中,我们首先使用 require()
方法包含中间件。然后,我们使用 app.use()
方法将中间件添加到 Express 应用程序中。在此示例中,我们添加了 body-parser
中间件,以确保输入的请求能够正确地解析和处理。
使用 Swagger 描述 API
Swagger 是一种用于描述和文档化 Web API 的标准格式。在 Express.js 中,你可以使用 swagger-ui-express
和 swagger-jsdoc
包来使用 Swagger 描述 API。
以下示例代码使用 Swagger 描述 API。
-- -------------------- ---- ------- ----- ------------ - ------------------------- ----- --------- - ------------------------------ ----- -------------- - - ------------------ - ----- - ------ --- ----- ------------ --- --- ---- --------- -------- - ----- ----- ---- -- -------- ------------------------- - -- ----- ----------------- -- ----- ----------- - ----------------------------- -------------------- ---------------- ------------------------------
在上面的代码块中,我们首先使用 swagger-jsdoc
描述 API,然后使用 swagger-ui-express
将其文档化。
管理数据库连接
在使用 REST API 时,很多时候需要连接数据库。连接数据库可以使用连接池和连接单例两种方式。
以下示例代码展示如何在 Express.js 中使用连接池和连接单例。
使用连接池
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ---- - ------------------ ---------------- --- ----- ------------ ----- --------- --------- --------- --------- ------ --- ----- ----- - ----- ----- -- - ------ --- ----------------- ------- -- - ------------------------ ----------- -- - -- ----- - ------ ------------ - --------------------- ----- ----- ----- -- - --------------------- -- ----- - ------ ------------ - ------ -------------- --- --- --- --
在上面的代码块中,我们使用 mysql
模块创建了一个 MySQL 连接池,并创建了一个帮助器函数 query()
用于执行 SQL 查询。query()
函数返回一个 Promise,以处理异步结果。
使用连接单例
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ---- - ------------------------ ----- ------------ ----- --------- --------- --------- --------- ------ --- ------------------ -- - -- ----- - -------------------- ---------- -- ----------- ------------------- ------- - ----------------------- -- -------- -------------- --- ----- ----- - ----- ----- -- - ------ --- ----------------- ------- -- - --------------- ----- ----- ----- -- - -- ----- - ------ ------------ - ------ -------------- --- --- --
在上面的代码块中,我们使用 mysql
模块创建了一个 MySQL 连接单例,并创建了一个帮助器函数 query()
用于执行 SQL 查询。query()
函数返回一个 Promise,以处理异步结果。
结论
在本文中,我们介绍了 Node.js 和 Express.js 的最佳实践,以创建 REST API。我们介绍了如何创建一个 Express.js 项目,并创建了一个 REST API 端点。我们还介绍了如何添加中间件、使用 Swagger 描述 API 和管理数据库连接。这些最佳实践将帮助你更快、更有效地创建 REST API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f69b0bc5c563ced58a9a36