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 に答える