Express.js 中的路由配置与中间件的使用指南

阅读时长 5 分钟读完

Express.js 是 Node.js 服务器端框架中最受欢迎的一个,它提供了很多方便的功能,其中路由配置和中间件的使用是其中最核心的部分之一。本文将围绕这两个方向,详细讲解 Express.js 中路由配置和中间件的使用。

什么是路由

路由是指如何定义应用的端点 (URI) 以及如何响应客户端的请求,通常由一个 URI、HTTP 请求方法、一个处理函数构成。应用根据客户端访问的地址(URI)和请求方式(HTTP 请求方法)来匹配特定的路由,并执行相应的处理函数。

Express.js 中的路由有两种:基本路由和参数路由。

基本路由

基本路由由 HTTP 动词和 URL 模式组合而成,如:

其中,app 是 Express 实例化的对象;METHOD 是一个 HTTP 请求方式,例如 GETPUTPOST 等;PATH 是 URL 的路径;HANDLER 是在路由匹配成功时执行的函数。

例如:

这里定义了 GET 方式的 / 路由,当浏览器访问该路由时,会返回 Hello World!

参数路由

参数路由依赖于 URL 中的参数(这些参数必须在 URL 中限定)。你可以使用冒号后跟参数名来定义参数路由,如:

这里定义了 GET 方式的 /p/:id 路由,其中冒号后面的 id 表示参数的名称。当客户端请求 /p/123 路由时,会返回 The id you specified is 123

什么是中间件

中间件是处理 HTTP 请求的函数,它可以访问请求对象 (req)、响应对象 (res) 和应用程序的请求-响应循环中的下一个中间件函数。 如果当前中间件函数没有将响应发送到客户端,则必须调用 next() 将控件传递给下一个中间件函数,否则请求将挂起。

在 Express.js 中,中间件可以是应用级别(绑定到 app 对象)或路由级别(绑定到特定 app.METHOD() 的路由)。

应用级别中间件

应用级别中间件使用 app.use() 函数来定义,可以用于增加全局的路由处理逻辑。例如,为应用程序添加路由日志:

路由级别中间件

路由级别中间件也使用 app.use() 函数来定义,但是需要绑定到特定的路由。例如,为特定路由添加身份验证:

这里定义了 /admin 路由上的身份验证中间件,如果请求头没有 Authorization 属性,则会以 401 响应返回 Unauthorized,否则请求将转移到下一个中间件或路由处理程序。

示例代码

下面的代码展示了如何在 Express.js 中定义和使用路由和中间件:

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

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

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

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

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

---------------- ---------- -
    ------------------- --------- -- ---- -------
---
展开代码

本文介绍了 Express.js 中路由配置和中间件的使用,希望对大家有所帮助。

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

纠错
反馈

纠错反馈