在了解基本子路由之后,我们可以深入探讨一些更高级的子路由概念和用法。
1. 动态路由参数
在高级子路由中,我们经常需要处理动态路由参数。例如,我们可能需要根据用户ID来访问用户信息。
GET /users/{userId}
在这里,{userId}
是一个动态参数,它将匹配任何包含数字的路径。
2. 路由嵌套
路由嵌套允许我们在子路由中创建更复杂的结构。
GET /users/{userId}/posts
在这个例子中,/users/{userId}
是一个父路由,而 /posts
是一个子路由。
3. 路由中间件
中间件可以用来在请求处理之前或之后执行一些操作,例如身份验证或日志记录。
app.use('/users', (req, res, next) => {
// 执行一些操作
next();
});
这里,我们为 /users
路径添加了一个中间件。
4. 路由守卫
路由守卫可以用来保护敏感路由,确保只有授权的用户才能访问。
const authMiddleware = (req, res, next) => {
// 检查用户是否已认证
if (req.isAuthenticated()) {
next();
} else {
res.status(401).send('未授权');
}
};
app.get('/admin', authMiddleware, (req, res) => {
// 只允许认证用户访问
res.send('欢迎来到管理员界面');
});
5. 扩展阅读
想要了解更多关于子路由的知识?请查看我们的子路由基础指南.
Advanced Concepts