在 Node.js 开发中,路由是构建 Web 应用的核心部分。掌握高级路由技巧能显著提升 API 设计与功能扩展的灵活性。以下是关键知识点:

1. 路由匹配机制

  • 精确匹配app.get('/users', ...) 匹配完整路径
  • 通配符匹配app.get('/users/*', ...) 匹配 /users/xxx 类型路径
  • 正则表达式app.get(/\/user\/([0-9]+)\/profile/, ...) 实现复杂模式匹配
  • 参数提取:使用 req.params 获取动态参数,如 /user/123 中的 123

Node js 路由匹配机制

2. 路由守卫模式

app.get('/secret', (req, res, next) => {
  if (req.user && req.user.isAdmin) {
    next(); // 放行
  } else {
    res.status(403).send('禁止访问');
  }
}, (req, res) => {
  res.send('这是管理员专属页面');
});

3. 动态路由参数

  • 参数捕获/user/:id 可获取 req.params.id
  • 参数验证:结合 express-validator 实现数据校验
  • 参数转换:使用 req.param 转换数据类型(如字符串转数字)

参数化 路由示例

4. 路由重定向技巧

app.get('/old-path', (req, res) => {
  res.redirect('/new-path'); // 301 重定向
});

5. 路由嵌套最佳实践

const adminRouter = express.Router();
adminRouter.get('/dashboard', ...);

app.use('/admin', adminRouter);

6. 路由优化建议

  • 使用 express.Router() 组织模块化路由
  • 优先级排序:app.get() 优于 app.all()
  • 路由分组:通过 router.use() 实现路径前缀管理
  • 性能考量:避免过度嵌套,保持路由表简洁

想要深入了解路由中间件的实现原理,可以访问 Node.js 路由深度解析 获取更多技术细节。