Express.js 入门指南:路由管理

阅读时长 6 分钟读完

Express.js 是目前非常流行的一个 Node.js Web 应用框架,其具有完善的功能和良好的扩展性,使得开发人员能够快速构建出高效可靠的 Web 应用程序。而路由管理是 Express.js 框架中至关重要的一环,本文将为大家介绍 Express.js 路由管理的入门指南,通过本文的学习,你将能够掌握 Express.js 路由的使用方法,从而更加轻松地构建出功能丰富的 Web 应用。

路由基础

在 Express.js 中,路由决定了客户端请求如何与服务器端的代码进行交互。路由提供了一种映射客户端请求和服务器端代码的机制,使得我们可以轻松地处理不同的请求类型,然后根据请求的数据向客户端返回相应的结果。而 Express.js 的路由就是通过定义一系列路由规则,来决定客户端请求可以访问服务器端的哪些资源。

路由配置

在 Express.js 中,路由可以通过一个或多个路由配置来实现,每个路由配置都包含一个或多个路由规则。路由规则可以包含路由路径、HTTP 方法和中间件函数。一条路由规则的语法如下:

其中:

  • appexpress() 的一个实例;
  • METHOD 是 HTTP 请求方法,可以是 GET、POST、PUT、PATCH、DELETE 等;
  • PATH 是服务器上对应的路径,支持字符串模式匹配和正则表达式;
  • HANDLER 是处理请求的路由处理程序,可以是回调函数、中间件函数或其它路由句柄。

例如,以下代码创建了一个路由规则,当浏览器访问根路径时,会调用回调函数进行响应:

路由中间件

在 Express.js 中,路由中间件是一种可以在处理请求之前执行的函数,通常用于处理请求的验证、身份验证、日志记录、错误处理等。路由中间件可以是一个独立的函数,也可以是一个由多个函数组成的函数链。

路由中间件可以通过 express.Router() 方法来创建一个独立的路由模块,然后使用 app.use() 方法将其挂载到主应用程序上。

以下代码演示了如何创建和使用一个简单的路由中间件:

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

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

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

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

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

参数处理

在 Express.js 中,可以通过在路由路径中包含参数来动态地命名路由路径。例如,我们可以通过定义 /users/:userId 这样的路径,来匹配所有以 /users/ 开头的路径中的参数。

当一个客户端发送一个请求到这个路由路径时,路由会解析路径中的参数,并将其存储在 req.params 对象中,其他中间件或路由可以通过该对象来访问这些参数。

以下代码演示了如何使用参数处理功能:

当我们使用 http://localhost:3000/users/123/books/456 来访问这个路由时,会得到以下响应:

路由顺序

在 Express.js 中,路由的顺序非常重要。当 Express.js 收到一个请求时,它会按照路由规则的顺序依次查找可处理该请求的路由规则。因此,我们需要根据需要定义路由的顺序。

例如,以下代码定义了两个路由规则:

当我们访问 /users/123 时,将会响应第一个路由规则,并返回 This is a user page. 而如果访问 /users/users/abc 等路由路径时,则会匹配到第二个路由规则,并返回 This is a users page.

示例代码

以下是一个完整的 Express.js 路由管理的示例代码:

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

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

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

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

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

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

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

当我们通过浏览器或其它 HTTP 客户端来访问这些路由路径时,将得到相应的响应结果。例如,访问 http://localhost:3000/ 将返回 Hello World!,而访问 http://localhost:3000/about 将返回 About Us

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

纠错
反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试