ExpressJSでは、RegExを使用して1つのルートで以下を正しくする方法は?
app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
ExpressJSでは、RegExを使用して1つのルートで以下を正しくする方法は?
app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
ここで正規表現を使用するポイントは何ですか? Express パターンはより単純ですが、正規表現とほぼ同じくらい強力です。
app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list);
このルートは、次のすべての URL に一致します。
/blog
/blog/
/blog/p
/blog/p/
/blog/p/123
blog.list
コントローラーreq.params.page
にはページ番号が含まれるか、指定されていない場合は含まれますundefined
。
これらの個別のルートを作成する説得力のある理由があるようですが、アプリで何をしているのかわかりません。
app.get(/^\/blog(?:\/p\/([0-9]+)?)?/, blog.list);
req.params[0] はルート /blog/p/20 で "20" にする必要があります。req.paramsnull
は /blog/p/ または /blog/ と同様ですが、両方を機能ルートとして使用します。