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);