15

我正在用 Express.js 写一个基本的博客。假设我有这样的路线结构:

/blog/page/:page

我还想要一条/blog本质上是/blog/page/1. 如何在 Express 中轻松处理这个问题?

所有路线的定义如下:

app.get('/path', function(req, res) {
    //logic
});
4

1 回答 1

30

用于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);
于 2013-01-02T19:03:26.417 回答