在了解基本子路由之后,我们可以深入探讨一些更高级的子路由概念和用法。

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