Express 面试题
目录

Express 的路由 (Routing) 是什么?

· 约 4 分钟读完 · 第 27 / 120 章

推荐答案

Express 的路由(Routing)是指根据客户端请求的 HTTP 方法和 URL 路径,将请求映射到相应的处理函数的过程。通过路由,开发者可以定义应用程序的端点(URI)以及对这些端点的响应方式。

在 Express 中,路由通常通过 app.METHOD(PATH, HANDLER) 的形式定义,其中:

  • METHOD 是 HTTP 请求方法(如 GET、POST、PUT、DELETE 等)。
  • PATH 是服务器上的路径(如 /users、/products 等)。
  • HANDLER 是当路由匹配时执行的函数,通常用于处理请求并发送响应。

例如:

本题详细解读

1. 路由的基本概念

路由是 Express 框架的核心功能之一,它允许开发者根据请求的 URL 和方法来定义不同的处理逻辑。每个路由可以包含一个或多个处理函数,这些函数会按照顺序执行,直到其中一个函数发送响应或终止请求-响应循环。

2. 路由的组成

  • HTTP 方法:Express 支持所有标准的 HTTP 方法,如 GET、POST、PUT、DELETE 等。此外,Express 还提供了 app.all() 方法,用于匹配所有 HTTP 方法。
  • 路径(PATH):路径可以是字符串、字符串模式或正则表达式。例如:
    • /users:匹配 /users 路径。
    • /users/:id:匹配 /users/123 等路径,并将 123 作为参数传递给处理函数。
    • /users/*:匹配 /users/ 开头的所有路径。
  • 处理函数(HANDLER):处理函数接收请求对象(req)和响应对象(res),并可以执行任意逻辑。处理函数可以是一个或多个,多个处理函数会按顺序执行。

3. 路由的示例

以下是一些常见的路由示例:

4. 路由的模块化

为了保持代码的可维护性,Express 支持将路由模块化。可以使用 express.Router() 创建模块化的路由处理程序,然后在主应用中挂载这些路由。例如:

5. 路由的优先级

Express 会按照路由定义的顺序进行匹配,因此路由的优先级取决于它们在代码中的顺序。如果多个路由可能匹配同一个请求,Express 会执行第一个匹配的路由。

6. 路由的中间件

路由处理函数本质上也是中间件,因此可以在路由中使用中间件来处理请求。例如:

通过以上内容,可以全面理解 Express 路由的概念、用法和最佳实践。