Express.js 是目前非常流行的一个 Node.js Web 应用框架,其具有完善的功能和良好的扩展性,使得开发人员能够快速构建出高效可靠的 Web 应用程序。而路由管理是 Express.js 框架中至关重要的一环,本文将为大家介绍 Express.js 路由管理的入门指南,通过本文的学习,你将能够掌握 Express.js 路由的使用方法,从而更加轻松地构建出功能丰富的 Web 应用。
路由基础
在 Express.js 中,路由决定了客户端请求如何与服务器端的代码进行交互。路由提供了一种映射客户端请求和服务器端代码的机制,使得我们可以轻松地处理不同的请求类型,然后根据请求的数据向客户端返回相应的结果。而 Express.js 的路由就是通过定义一系列路由规则,来决定客户端请求可以访问服务器端的哪些资源。
路由配置
在 Express.js 中,路由可以通过一个或多个路由配置来实现,每个路由配置都包含一个或多个路由规则。路由规则可以包含路由路径、HTTP 方法和中间件函数。一条路由规则的语法如下:
app.METHOD(PATH, HANDLER)
其中:
app
是express()
的一个实例;METHOD
是 HTTP 请求方法,可以是 GET、POST、PUT、PATCH、DELETE 等;PATH
是服务器上对应的路径,支持字符串模式匹配和正则表达式;HANDLER
是处理请求的路由处理程序,可以是回调函数、中间件函数或其它路由句柄。
例如,以下代码创建了一个路由规则,当浏览器访问根路径时,会调用回调函数进行响应:
app.get('/', function(req, res) { res.send('Hello, world!'); });
路由中间件
在 Express.js 中,路由中间件是一种可以在处理请求之前执行的函数,通常用于处理请求的验证、身份验证、日志记录、错误处理等。路由中间件可以是一个独立的函数,也可以是一个由多个函数组成的函数链。
路由中间件可以通过 express.Router()
方法来创建一个独立的路由模块,然后使用 app.use()
方法将其挂载到主应用程序上。
以下代码演示了如何创建和使用一个简单的路由中间件:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- -- --------- ----- -------- - -------- ----- ---- ----- - ---------------------- ------- - -- ------- ------- ----- ------------------ -- -------------- ------------ -------- ----- ---- - --------------- --------- --- -----------------
参数处理
在 Express.js 中,可以通过在路由路径中包含参数来动态地命名路由路径。例如,我们可以通过定义 /users/:userId
这样的路径,来匹配所有以 /users/
开头的路径中的参数。
当一个客户端发送一个请求到这个路由路径时,路由会解析路径中的参数,并将其存储在 req.params
对象中,其他中间件或路由可以通过该对象来访问这些参数。
以下代码演示了如何使用参数处理功能:
app.get('/users/:userId/books/:bookId', function (req, res) { res.send(req.params); });
当我们使用 http://localhost:3000/users/123/books/456
来访问这个路由时,会得到以下响应:
{ "userId": "123", "bookId": "456" }
路由顺序
在 Express.js 中,路由的顺序非常重要。当 Express.js 收到一个请求时,它会按照路由规则的顺序依次查找可处理该请求的路由规则。因此,我们需要根据需要定义路由的顺序。
例如,以下代码定义了两个路由规则:
app.get('/users/:userId', function (req, res) { res.send('This is a user page.'); }); app.get('/users/*', function (req, res) { res.send('This is a users page.'); });
当我们访问 /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