我正在用 Express.js 写一个基本的博客。假设我有这样的路线结构:
/blog/page/:page
我还想要一条/blog
本质上是/blog/page/1
. 如何在 Express 中轻松处理这个问题?
所有路线的定义如下:
app.get('/path', function(req, res) {
//logic
});
用于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);