我正在Express.js的基础博客上工作。说我有这样的路线结构:
/blog/page/:page
我还希望/blog
路由基本上是/blog/page/1
的别名。如何在Express中轻松处理?
所有路线都是这样定义的:
app.get('/path', function(req, res) {
//logic
});
答案 0 :(得分:19)
使用res.redirect
告诉浏览器重定向到/blog/page/1
:
app.get('/blog', function(req, res) {
res.redirect('/blog/page/1');
});
app.get('/blog/page/:page', function(req, res) {
//logic
});
如果未传递page
参数,请使用共享路由处理程序并默认使用第1页:
function blogPageHandler(req, res) {
var page = req.params.page || 1;
//logic
}
// Define separate routes
app.get('/blog/page/:page', blogPageHandler);
app.get('/', blogPage);
// or combined, by passing an array
app.get(['/', '/blog/page/:page'], blogPageHandler);
// or using optional regex matching (this is not recommended)
app.get('/:_(blog/)?:_(page/)?:page([0-9]+)?', blogPageHandler);