11 路由参数
在本节中,我们将深入探讨 Express.js 中的路由参数。路由参数为我们创建动态和灵活的路由提供了强大的支持。通过路由参数,我们可以定义 URL 中的可变部分,并在处理请求时提取这些参数。
1. 什么是路由参数
路由参数
是在路由定义中指定的路径部分,它以冒号(:
)开头。这些参数在请求到达服务器时会被解析,并可以在处理请求的回调函数中访问。
例如,在访问路径 /users/:userId
时,:userId
就是一个路由参数。如果用户请求 /users/42
,那么 userId
的值将是 42
。
2. 如何定义路由参数
在 Express.js 中,我们可以通过简单的语法来定义路由参数。以下是一个基本的示例:
1 | const express = require('express'); |
在这个例子中,当用户访问 http://localhost:3000/users/42
时,服务器将响应 用户ID是: 42
。
3. 路由参数的多个值
路由参数也可以包含多个值。我们可以在路由中定义多个参数,如下所示:
1 | app.get('/products/:productId/reviews/:reviewId', (req, res) => { |
在这个示例中,如果用户访问 http://localhost:3000/products/101/reviews/5
,那么响应将是 产品ID是: 101, 评论ID是: 5
。
4. 路由参数的匹配
Express.js 支持多种路由参数匹配。以下是几个示例:
- 只匹配数字:如果我们只想匹配数字,可以使用正则表达式。在路由定义中以
(:param)
的形式指明:
1 | app.get('/posts/:postId(\\d+)', (req, res) => { |
在此示例中,只有数字形式的 postId
会被匹配。如果用户访问 /posts/abc
,将不会匹配到这个路由。
- 可选参数:使用
?
可以定义可选的路由参数:
1 | app.get('/search/:query?/:page?', (req, res) => { |
如果用户只访问 /search/test
,则 页面
参数将会被默认设置为 1
。
5. 提取路由参数的常用方法
在 Express.js 中,提取 路由参数
的主要方法是使用 req.params
对象。在这个对象中,路由参数的名称作为属性,参数值则为其对应的值。如下示例:
1 | app.get('/users/:username', (req, res) => { |
在访问 /users/JohnDoe
时,结果将会是 欢迎, JohnDoe!
。
6. 总结
在本节中,我们学习了 路由参数
的定义和使用方式。路由参数允许我们创建更灵活的路由,能够处理动态请求,同时提取重要的信息用于后续处理。在下一节中,我们将进一步探索如何实现 动态路由
,以便使我们的路由更加强大和智能。
希望本节能够帮助你更好地理解 Express.js 的路由参数特性。请继续关注接下来的内容,我们将一起深入学习动态路由的实现与应用。