在 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 路由深度解析 获取更多技术细节。