Express(v4.15)ルーティングでOR条件付きの正規表現を指定するにはどうすればよいですか?Express:論理式またはルーティング式
は、私は次のルートは(私はなしにしようとしたとき、私は次のエラー
SyntaxError: Invalid regular expression: /^\/(?(?:([^\/]+?))|media|movies)\/(?:([^\/]+?))\/?$/: Invalid group
を得た
app.get('/(video|media|movies)/:videoId', this.redirectToVideo.bind(this));
しようとしたのと同じ方法
/video/:videoId
/movies/:videoId
/media/:videoId
を指すようにしたいです)
app.get('/video|media|movies/:videoId', this.redirectToVideo.bind(this));
最初の2つのルートが動作し
ではなく、1つの
/media/:videoId
おかげ
バックスラッシュを '/'としてスラッシュ '/'をエスケープする必要があります。これを使う: '\ /(video | media | movies)\ /:videoId' – ctwheels
また、あなたが得ているエラーは別の正規表現のようです? (?:(?^ \ /] +?))| \ |?$ '最初の非捕捉グループには疑問符 '(?:...)の後に': 'がありません。捕捉グループである場合は疑問符'? 'を '(...)'として取り除きます – ctwheels