动态路由与参数提取
动态路由允许在路径中定义变量部分,以匹配不同的请求路径并提取参数,方便处理用户输入和资源标识。
路由参数(Route Parameters)
使用冒号 : 定义路由中的动态部分:
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
res.send(`用户ID是:${userId}`);
});
`
访问 /user/123,req.params.id 即为 '123'。
可以定义多个参数:
app.get('/order/:orderId/item/:itemId', (req, res) => {
res.send(`订单ID:${req.params.orderId}, 商品ID:${req.params.itemId}`);
});
参数匹配规则
- 路由参数只能匹配非斜杠的字符串。
- 可使用问号
?表示参数可选:
app.get('/user/:id?', (req, res) => {
res.send(req.params.id ? `用户ID:${req.params.id}` : '无用户ID');
});
查询参数(Query Parameters)
查询参数位于 URL ? 之后,通过 req.query 访问:
URL 示例:/search?keyword=express&page=2
app.get('/search', (req, res) => {
const { keyword, page } = req.query;
res.send(`搜索关键词:${keyword}, 页码:${page}`);
});
结合使用示例
app.get('/products/:category', (req, res) => {
const category = req.params.category;
const sort = req.query.sort || 'default';
res.send(`类别:${category},排序方式:${sort}`);
});
访问 /products/electronics?sort=price,得到类别为 electronics,排序为 price。
总结
动态路由和参数提取极大地增强了路由的灵活性,使得 Express 应用可以根据不同的请求路径和参数动态响应,满足复杂业务需求。
相关内容
- 常用中间件列表 本章节将介绍一些常用的 Express 中间件,它们可以帮助您简化应用的开发。中间件用于处理请求、响应,或在请求处理过程中执行额外的操作。本章节包括一些常见的中...
- 常见错误及解决方案 本章节将介绍在开发 Express 应用时常见的错误及其解决方案。通过了解这些常见问题及其处理方法,您可以更有效地调试和优化您的应用。
- 推荐阅读资源 本章节提供了一些推荐的学习资源,包括书籍、在线教程、视频课程和社区资源,帮助您深入了解 Express 和相关技术栈,提升开发技能。
- Express 对比 Koa 和 Next.js 本章节将对比 Express、Koa 和 Next.js 三个常见的 Node.js 框架,分析它们的特点、使用场景、优势和劣势,帮助开发者根据项目需求选择合适...
- 什么是 Node.js? Node.js 是基于 Chrome V8 引擎的 JavaScript 运行时环境,支持在服务器端运行 JavaScript,实现高性能非阻塞 I/O,广泛应...
- 什么是 Express? Express 是基于 Node.js 的极简灵活的 Web 应用框架,简化服务器端开发流程,提供强大的路由、中间件支持,广泛用于构建高性能 Web 服务和 A...